/** * 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())); } }