package br.ufrgs.inf.dsmoura.repository.model.entity;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Transient;
@Entity
public class FunctionalRequirementDTO extends Artifactable implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name = "functionalrequirement_generator", allocationSize=1)
@GeneratedValue(strategy=GenerationType.AUTO, generator="functionalrequirement_generator")
private Integer functionalrequirementPk;
@Column(nullable=false)
private String id;
@Column(nullable=false)
private String name;
private String type;
@Column(length=16384)
private String description;
@Column(nullable=false)
private String reference;
@Lob
private byte[] file;
@ManyToOne
@JoinColumn(name="softwarelicensePk", nullable=true)
private SoftwareLicenseDTO softwareLicenseDTO;
@ManyToOne
@JoinColumn(name="functionalrequirementtypePk")
private FunctionalRequirementTypeDTO functionalRequirementTypeDTO;
@ManyToMany(cascade=CascadeType.ALL)
@JoinColumn(name="functionalrequirementPk")
private List<ArtifactDependencyDTO> artifactDependencyDTOs = new ArrayList<ArtifactDependencyDTO>();
@Transient
private Long randomID = new Random().nextLong();
@Transient
private String location;
public Integer getFunctionalrequirementPk() {
return functionalrequirementPk;
}
public void setFunctionalrequirementPk(Integer functionalrequirementPk) {
this.functionalrequirementPk = functionalrequirementPk;
}
@Override
public String getId() {
return id;
}
@Override
public void setId(String id) {
this.id = id;
}
@Override
public String getName() {
return this.name;
}
@Override
public void setName(String name) {
this.name = name;
}
@Override
public String getDescription() {
return description;
}
@Override
public void setDescription(String description) {
this.description = description;
}
@Override
public String getType() {
return type;
}
@Override
public void setType(String type) {
this.type = type;
}
@Override
public String getReference() {
return reference;
}
@Override
public void setReference(String reference) {
this.reference = reference;
}
@Override
public byte[] getFile() {
return file;
}
@Override
public void setFile(byte[] file) {
this.file = file;
}
@Override
public SoftwareLicenseDTO getSoftwareLicenseDTO() {
return softwareLicenseDTO;
}
@Override
public void setSoftwareLicenseDTO(SoftwareLicenseDTO softwareLicenseDTO) {
this.softwareLicenseDTO = softwareLicenseDTO;
}
public FunctionalRequirementTypeDTO getFunctionalRequirementTypeDTO() {
return functionalRequirementTypeDTO;
}
public void setFunctionalRequirementTypeDTO(
FunctionalRequirementTypeDTO functionalRequirementTypeDTO) {
this.functionalRequirementTypeDTO = functionalRequirementTypeDTO;
}
@Override
public List<ArtifactDependencyDTO> getArtifactDependencyDTOs() {
return artifactDependencyDTOs;
}
@Override
public void setArtifactDependencyDTOs(List<ArtifactDependencyDTO> artifactDependencyDTOs) {
this.artifactDependencyDTOs = artifactDependencyDTOs;
}
@Override
public Integer getSize() {
if (file != null) {
return file.length / 1024;
}
return null;
}
@Override
public Long getRandomID() {
return randomID;
}
@Override
public void setRandomID(Long randomID) {
this.randomID = randomID;
}
@Override
public String getLocation() {
return location;
}
@Override
public void setLocation(String location) {
this.location = location;
}
}