package org.opentosca.csarrepo.util.jaxb; import java.net.URI; import java.util.Date; import java.util.LinkedList; import java.util.List; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; import org.opentosca.csarrepo.rest.model.SimpleXLink; /** * * @author Marcus Eisele <marcus.eisele@gmail.com> * */ @XmlRootElement(name = "ServiceInstance") public class ServiceInstanceEntry { private URI serviceInstanceID; private String csarID; private String serviceTemplateID; private String serviceTemplateName; private Date created; private List<SimpleXLink> links = new LinkedList<SimpleXLink>(); private List<SimpleXLink> nodeInstanceList = new LinkedList<SimpleXLink>(); protected ServiceInstanceEntry() { super(); } @XmlAttribute(name = "serviceInstanceID", required = true) public URI getServiceInstanceID() { return serviceInstanceID; } @XmlAttribute(name = "csarID", required = true) public String getCsarID() { return csarID; } @XmlAttribute(name = "serviceTemplateID", required = true) public String getServiceTemplateID() { return serviceTemplateID; } @XmlAttribute(name = "serviceTemplateName") public String getServiceTemplateName() { return serviceTemplateName; } @XmlAttribute(name = "created-at") public Date getCreated() { return created; } @XmlElement(name = "Link") public List<SimpleXLink> getLinks() { return links; } @XmlElementWrapper(name = "nodeInstances") @XmlElement(name = "nodeInstance") public List<SimpleXLink> getNodeInstanceList() { return nodeInstanceList; } public void setServiceInstanceID(URI serviceInstanceID) { this.serviceInstanceID = serviceInstanceID; } public void setCsarID(String csarID) { this.csarID = csarID; } public void setServiceTemplateID(String serviceTemplateID) { this.serviceTemplateID = serviceTemplateID; } public void setServiceTemplateName(String serviceTemplateName) { this.serviceTemplateName = serviceTemplateName; } public void setCreated(Date created) { this.created = created; } public void setLinks(List<SimpleXLink> links) { this.links = links; } public void setNodeInstanceList(List<SimpleXLink> nodeInstanceList) { this.nodeInstanceList = nodeInstanceList; } @XmlTransient public String getSelfLink() { if (null == links.get(0)) { return "#"; } return links.get(0).getHref(); } @Override public String toString() { return String.format("id: %s / csarID: %s / serviceTemplateName: %s", this.serviceInstanceID, this.csarID, this.serviceTemplateID); } }