public boolean linkAnnotation(Annotation o) { o.linkScreen(this); if (!annotationLinks.contains(o)) { return annotationLinks.add(o); } return false; }
public boolean link(Reference reference, OMEModelObject o) { boolean wasHandledBySuperClass = super.link(reference, o); if (wasHandledBySuperClass) { return true; } if (reference instanceof PlateRef) { Plate o_casted = (Plate) o; o_casted.linkScreen(this); if (!plateLinks.contains(o_casted)) { plateLinks.add(o_casted); } return true; } if (reference instanceof AnnotationRef) { Annotation o_casted = (Annotation) o; o_casted.linkScreen(this); if (!annotationLinks.contains(o_casted)) { annotationLinks.add(o_casted); } return true; } LOGGER.debug("Unable to handle reference of type: {}", reference.getClass()); return false; }
/** * Updates DoubleAnnotation recursively from an XML DOM tree. <b>NOTE:</b> No properties are * removed, only added or updated. * * @param element Root of the XML DOM tree to construct a model object graph from. * @param model Handler for the OME model which keeps track of instances and references seen * during object population. * @throws EnumerationException If there is an error instantiating an enumeration during model * object creation. */ public void update(Element element, OMEModel model) throws EnumerationException { super.update(element, model); String tagName = element.getTagName(); if (!"DoubleAnnotation".equals(tagName)) { LOGGER.debug("Expecting node name of DoubleAnnotation got {}", tagName); } List<Element> Value_nodeList = getChildrenByTagName(element, "Value"); if (Value_nodeList.size() > 1) { // TODO: Should be its own Exception throw new RuntimeException( String.format("Value node list size %d != 1", Value_nodeList.size())); } else if (Value_nodeList.size() != 0) { // Element property Value which is not complex (has no // sub-elements) setValue(Double.valueOf(Value_nodeList.get(0).getTextContent())); } }
protected Element asXMLElement(Document document, Element Screen_element) { // Creating XML block for Screen if (Screen_element == null) { Screen_element = document.createElementNS(NAMESPACE, "Screen"); } if (name != null) { // Attribute property Name Screen_element.setAttribute("Name", name.toString()); } if (protocolDescription != null) { // Attribute property ProtocolDescription Screen_element.setAttribute("ProtocolDescription", protocolDescription.toString()); } if (protocolIdentifier != null) { // Attribute property ProtocolIdentifier Screen_element.setAttribute("ProtocolIdentifier", protocolIdentifier.toString()); } if (reagentSetDescription != null) { // Attribute property ReagentSetDescription Screen_element.setAttribute("ReagentSetDescription", reagentSetDescription.toString()); } if (type != null) { // Attribute property Type Screen_element.setAttribute("Type", type.toString()); } if (id != null) { // Attribute property ID Screen_element.setAttribute("ID", id.toString()); } if (reagentSetIdentifier != null) { // Attribute property ReagentSetIdentifier Screen_element.setAttribute("ReagentSetIdentifier", reagentSetIdentifier.toString()); } if (description != null) { // Element property Description which is not complex (has no // sub-elements) Element description_element = document.createElementNS(NAMESPACE, "Description"); description_element.setTextContent(description.toString()); Screen_element.appendChild(description_element); } if (reagents != null) { // Element property Reagent which is complex (has // sub-elements) and occurs more than once for (Reagent reagents_value : reagents) { Screen_element.appendChild(reagents_value.asXMLElement(document)); } } if (plateLinks != null) { // Reference property PlateRef which occurs more than once for (Plate plateLinks_value : plateLinks) { PlateRef o = new PlateRef(); o.setID(plateLinks_value.getID()); Screen_element.appendChild(o.asXMLElement(document)); } } if (annotationLinks != null) { // Reference property AnnotationRef which occurs more than once for (Annotation annotationLinks_value : annotationLinks) { AnnotationRef o = new AnnotationRef(); o.setID(annotationLinks_value.getID()); Screen_element.appendChild(o.asXMLElement(document)); } } return super.asXMLElement(document, Screen_element); }
public boolean unlinkAnnotation(Annotation o) { o.unlinkScreen(this); return annotationLinks.remove(o); }