package de.cinovo.cloudconductor.server.model;
import de.cinovo.cloudconductor.api.model.INamed;
import de.taimos.dao.IEntity;
import org.hibernate.annotations.ManyToAny;
import javax.persistence.*;
import java.util.List;
/**
* Created by janweisssieker on 18.11.16.
*/
@Entity
@Table(name = "directory", schema = "cloudconductor")
public class EDirectory implements IVersionized<Long>, INamed {
private static final long serialVersionUID = 1L;
private Long id;
private String name;
private EPackage pkg;
private String targetPath;
private String owner;
private String group;
private String fileMode;
private List<EService> dependentServices;
private Long version;
private boolean deleted = false;
private Long origId;
@Override
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getId() {
return this.id;
}
@Override
public void setId(Long id) {
this.id = id;
}
@ManyToOne(optional = true, fetch = FetchType.LAZY)
@JoinColumn(name = "packageid")
public EPackage getPkg() {
return this.pkg;
}
public void setPkg(EPackage pkg){
this.pkg = pkg;
}
public String getTargetPath() {
return this.targetPath;
}
public void setTargetPath(String targetPath){
this.targetPath = targetPath;
}
public String getOwner() {
return this.owner;
}
public void setOwner(String owner){
this.owner = owner;
}
@Column(name = "filegroup", nullable = false)
public String getGroup(){
return this.group;
}
public void setGroup(String group){
this.group = group;
}
public String getFileMode(){
return this.fileMode;
}
public void setFileMode(String fileMode){
this.fileMode = fileMode;
}
@ManyToMany(cascade = {CascadeType.DETACH}, fetch = FetchType.LAZY)
@JoinTable(name = "mappingdirectoryservice", schema = "cloudconductor", //
joinColumns = @JoinColumn(name = "directoryid"), inverseJoinColumns = @JoinColumn(name = "serviceid"))
public List<EService> getDependentServices() {
return this.dependentServices;
}
public void setDependentServices(List<EService> dependentServices) {
this.dependentServices = dependentServices;
}
@Override
@Column(nullable = false)
public String getName() {
return this.name;
}
public void setName(String name) {this.name = name;}
@Override
public boolean isDeleted() {
return this.deleted;
}
@Override
public void setDeleted(boolean deleted) {
this.deleted = deleted;
}
@Override
public void setOrigId(Long id) {
this.origId = id;
}
@Override
public Long getOrigId() {
return this.origId;
}
@Override
public Long getVersion() {
return this.version;
}
@Override
public void setVersion(Long version) {
this.version = version;
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof EDirectory)) {
return false;
}
EDirectory other = (EDirectory) obj;
if (this.getName() == null) {
return false;
}
return this.getName().equals(other.getName());
}
@Override
public int hashCode() {
return (this.getName() == null) ? 0 : this.getName().hashCode();
}
@Override
public IEntity<Long> cloneNew() {
EDirectory r = new EDirectory();
r.setDeleted(this.deleted);
r.setDependentServices(this.dependentServices);
r.setFileMode(this.fileMode);
r.setGroup(this.group);
r.setName(this.name);
r.setOrigId(this.origId);
r.setOwner(this.owner);
r.setPkg(this.pkg);
r.setTargetPath(this.targetPath);
r.setVersion(this.version);
return r;
}
}