package qa.qcri.aidr.dbmanager.dto; import java.io.Serializable; import java.util.Date; 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.NominalLabel; import qa.qcri.aidr.dbmanager.entities.task.Document; import qa.qcri.aidr.dbmanager.entities.task.DocumentNominalLabel; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @XmlRootElement @JsonIgnoreProperties(ignoreUnknown=true) public class DocumentNominalLabelDTO implements Serializable { /** * */ private static final long serialVersionUID = 731958369334372038L; @XmlElement private DocumentNominalLabelIdDTO idDTO; @XmlElement private Date timestamp; @XmlElement private NominalLabelDTO nominalLabelDTO; @XmlElement private DocumentDTO documentDTO; public DocumentNominalLabelDTO() {} public DocumentNominalLabelDTO(DocumentNominalLabel doc) throws PropertyNotSetException { if (doc != null) { this.setIdDTO(new DocumentNominalLabelIdDTO(doc.getId())); if (doc.hasDocument()) { Document d = new Document(doc.getDocument().getCrisis(), doc.getDocument().isIsEvaluationSet(), doc.getDocument().isHasHumanLabels(), doc.getDocument().getValueAsTrainingSample(), doc.getDocument().getReceivedAt(), doc.getDocument().getLanguage(), doc.getDocument().getDoctype(), doc.getDocument().getData()); d.setWordFeatures(doc.getDocument().getWordFeatures()); d.setGeoFeatures(doc.getDocument().getGeoFeatures()); d.setDocumentId(doc.getDocument().getDocumentId()); this.setDocumentDTO(new DocumentDTO(d)); } if (doc.hasNominalLabel()) { NominalLabel nb = new NominalLabel(doc.getNominalLabel().getNominalAttribute(), doc.getNominalLabel().getNominalLabelCode(), doc.getNominalLabel().getName(), doc.getNominalLabel().getDescription(), doc.getNominalLabel().getSequence()); nb.setNominalLabelId(doc.getNominalLabel().getNominalLabelId()); this.setNominalLabelDTO(new NominalLabelDTO(nb)); } this.setTimestamp(doc.getTimestamp()); } } public DocumentNominalLabelDTO(DocumentNominalLabelIdDTO idDTO, NominalLabelDTO nominalLabelDTO, DocumentDTO documentDTO) throws PropertyNotSetException { this.setIdDTO(idDTO); this.setNominalLabelDTO(nominalLabelDTO); this.setDocumentDTO(documentDTO); } public DocumentNominalLabelIdDTO getIdDTO() { return this.idDTO; } public void setIdDTO(DocumentNominalLabelIdDTO idDTO) { if (idDTO != null) { this.idDTO = idDTO; } else { throw new IllegalArgumentException("Argument cannot be null!"); } } public Date getTimestamp() { return this.timestamp; } public void setTimestamp(Date timestamp) { this.timestamp = timestamp; } public NominalLabelDTO getNominalLabelDTO() { return this.nominalLabelDTO; } public void setNominalLabelDTO(NominalLabelDTO nominalLabelDTO) { this.nominalLabelDTO = nominalLabelDTO; } public DocumentDTO getDocumentDTO() { return this.documentDTO; } public void setDocumentDTO(DocumentDTO documentDTO) { this.documentDTO = documentDTO; } public DocumentNominalLabel toEntity() throws PropertyNotSetException { DocumentNominalLabel doc = new DocumentNominalLabel(); if (this.idDTO != null) { doc.setId(this.getIdDTO().toEntity()); } if (this.getDocumentDTO() != null) { doc.setDocument(this.getDocumentDTO().toEntity()); } if (this.getNominalLabelDTO() != null) { doc.setNominalLabel(this.getNominalLabelDTO().toEntity()); } doc.setTimestamp(this.getTimestamp()); return doc; } }