argos/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/dmpXml/dmpBlueprintModel/DmpBlueprint.java

43 lines
1.5 KiB
Java

package eu.eudat.logic.utilities.documents.xml.dmpXml.dmpBlueprintModel;
import eu.eudat.commons.enums.DmpBlueprintStatus;
import eu.eudat.commons.types.xml.XmlBuilder;
import eu.eudat.data.DmpBlueprintEntity;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;
import org.w3c.dom.Document;
import javax.management.InvalidApplicationException;
import java.time.Instant;
import java.util.Date;
@XmlRootElement(name = "root")
public class DmpBlueprint {
private DmpBlueprintDefinition dmpBlueprintDefinition;
@XmlElement(name = "definition")
public DmpBlueprintDefinition getDmpBlueprintDefinition() {
return dmpBlueprintDefinition;
}
public void setDmpBlueprintDefinition(DmpBlueprintDefinition dmpBlueprintDefinition) {
this.dmpBlueprintDefinition = dmpBlueprintDefinition;
}
public DmpBlueprintEntity toDmpProfileCompositeModel(String label) {
DmpBlueprintEntity dmpProfileModel = new DmpBlueprintEntity();
dmpProfileModel.setLabel(label);
dmpProfileModel.setStatus(DmpBlueprintStatus.Draft);
dmpProfileModel.setCreatedAt(Instant.now());
dmpProfileModel.setUpdatedAt(Instant.now());
if (this.dmpBlueprintDefinition != null) {
Document document = XmlBuilder.getDocument();
document.appendChild(this.dmpBlueprintDefinition.toDmpBlueprintCompositeModel().toXml(document));
dmpProfileModel.setDefinition(XmlBuilder.generateXml(document));
}
return dmpProfileModel;
}
}