package qa.qcri.aidr.dbmanager.dto; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import qa.qcri.aidr.common.exception.PropertyNotSetException; import qa.qcri.aidr.dbmanager.entities.model.ModelNominalLabel; import qa.qcri.aidr.dbmanager.entities.model.NominalAttribute; import qa.qcri.aidr.dbmanager.entities.model.NominalLabel; import qa.qcri.aidr.dbmanager.entities.task.DocumentNominalLabel; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @XmlRootElement @JsonIgnoreProperties(ignoreUnknown=true) public class NominalLabelDTO implements Serializable { /** * */ private static final long serialVersionUID = 70272893149042961L; @XmlElement private Long nominalLabelId; @XmlElement private NominalAttributeDTO nominalAttributeDTO; @XmlElement private String nominalLabelCode; @XmlElement private String name; @XmlElement private String description; @XmlElement private Integer sequence; @XmlElement private List<ModelNominalLabelDTO> modelNominalLabelsDTO = null; @XmlElement private List<DocumentNominalLabelDTO> documentNominalLabelsDTO = null; public NominalLabelDTO() { } public NominalLabelDTO(NominalLabel nominalLabel) throws PropertyNotSetException { if (nominalLabel != null) { if (nominalLabel.hasNominalAttribute()) { NominalAttribute na = new NominalAttribute(nominalLabel.getNominalAttribute().getUsers(), nominalLabel.getNominalAttribute().getName(), nominalLabel.getNominalAttribute().getDescription(), nominalLabel.getNominalAttribute().getCode()); na.setNominalAttributeId(nominalLabel.getNominalAttribute().getNominalAttributeId()); this.setNominalAttributeDTO(new NominalAttributeDTO(na)); } this.setNominalLabelId(nominalLabel.getNominalLabelId()); this.setNominalLabelCode(nominalLabel.getNominalLabelCode()); this.setName(nominalLabel.getName()); this.setDescription(nominalLabel.getDescription()); this.setSequence(nominalLabel.getSequence()); if (nominalLabel.hasDocumentNominalLabels()) { this.setDocumentNominalLabelsDTO( this.toDocumentNominalLabelDTOList(nominalLabel.getDocumentNominalLabels())); } if (nominalLabel.hasModelNominalLabels()) { this.setModelNominalLabelsDTO(this.toModelNominalLabelDTOList(nominalLabel.getModelNominalLabels())); } } } public NominalLabelDTO(NominalAttributeDTO nominalAttributeDTO, String nominalLabelCode, String name, String description, Integer sequence) throws PropertyNotSetException { this.setNominalAttributeDTO(nominalAttributeDTO); this.setNominalLabelCode(nominalLabelCode); this.setName(name); this.setDescription(description); this.setSequence(sequence); } public NominalLabelDTO(NominalAttributeDTO nominalAttributeDTO, String nominalLabelCode, String name, String description, Integer sequence, List<ModelNominalLabelDTO> modelNominalLabelsDTO, List<DocumentNominalLabelDTO> documentNominalLabelsDTO) throws PropertyNotSetException { this.setNominalAttributeDTO(nominalAttributeDTO); this.setNominalLabelCode(nominalLabelCode); this.setName(name); this.setDescription(description); this.setSequence(sequence); this.setModelNominalLabelsDTO(modelNominalLabelsDTO); this.setDocumentNominalLabelsDTO(documentNominalLabelsDTO); } public Long getNominalLabelId() { return this.nominalLabelId; } public void setNominalLabelId(Long nominalLabelId) { this.nominalLabelId = nominalLabelId; } public NominalAttributeDTO getNominalAttributeDTO() { return this.nominalAttributeDTO; } public void setNominalAttributeDTO(NominalAttributeDTO nominalAttributeDTO) throws PropertyNotSetException { this.nominalAttributeDTO = nominalAttributeDTO; } public String getNominalLabelCode() { return this.nominalLabelCode; } public void setNominalLabelCode(String nominalLabelCode) { this.nominalLabelCode = nominalLabelCode; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public String getDescription() { return this.description; } public void setDescription(String description) { this.description = description; } public Integer getSequence() { return this.sequence; } public void setSequence(Integer sequence) { this.sequence = sequence; } public List<ModelNominalLabelDTO> getModelNominalLabelsDTO() { return this.modelNominalLabelsDTO; } public void setModelNominalLabelsDTO(List<ModelNominalLabelDTO> modelNominalLabelsDTO) { this.modelNominalLabelsDTO = modelNominalLabelsDTO; } public List<DocumentNominalLabelDTO> getDocumentNominalLabelsDTO() { return this.documentNominalLabelsDTO; } public void setDocumentNominalLabelsDTO(List<DocumentNominalLabelDTO> documentNominalLabelsDTO) { this.documentNominalLabelsDTO = documentNominalLabelsDTO; } private List<DocumentNominalLabelDTO> toDocumentNominalLabelDTOList(List<DocumentNominalLabel> list) throws PropertyNotSetException { if (list != null) { List<DocumentNominalLabelDTO> dtoList = new ArrayList<DocumentNominalLabelDTO>(); for (DocumentNominalLabel d: list) { dtoList.add(new DocumentNominalLabelDTO(d)); } return dtoList; } return null; } private List<DocumentNominalLabel> toDocumentNominalLabelList(List<DocumentNominalLabelDTO> list) throws PropertyNotSetException { if (list != null) { List<DocumentNominalLabel> eList = new ArrayList<DocumentNominalLabel>(); for (DocumentNominalLabelDTO dto: list) { eList.add(dto.toEntity()); } return eList; } return null; } private List<ModelNominalLabelDTO> toModelNominalLabelDTOList(List<ModelNominalLabel> list) throws PropertyNotSetException { if (list != null) { List<ModelNominalLabelDTO> dtoList = new ArrayList<ModelNominalLabelDTO>(); for (ModelNominalLabel d: list) { dtoList.add(new ModelNominalLabelDTO(d)); } return dtoList; } return null; } private List<ModelNominalLabel> toModelNominalLabelList(List<ModelNominalLabelDTO> list) throws PropertyNotSetException { if (list != null) { List<ModelNominalLabel> eList = new ArrayList<ModelNominalLabel>(); for (ModelNominalLabelDTO dto: list) { eList.add(dto.toEntity()); } return eList; } return null; } public NominalLabel toEntity() throws PropertyNotSetException { NominalLabel entity = new NominalLabel(); if (this.getNominalAttributeDTO() != null) { entity.setNominalAttribute(this.getNominalAttributeDTO().toEntity()); } entity.setNominalLabelCode(this.getNominalLabelCode()); entity.setName(this.getName()); entity.setDescription(this.getDescription()); entity.setSequence(this.getSequence()); if (this.getNominalLabelId() != null) { entity.setNominalLabelId(this.getNominalLabelId()); } if (this.getDocumentNominalLabelsDTO() != null) { entity.setDocumentNominalLabels(this.toDocumentNominalLabelList(this.documentNominalLabelsDTO)); } if (this.getModelNominalLabelsDTO() != null) { entity.setModelNominalLabels(this.toModelNominalLabelList(this.modelNominalLabelsDTO)); } return entity; } }