Changeset 2822


Ignore:
Timestamp:
05/25/07 09:53:04 (13 years ago)
Author:
melissa
Message:

Save the first image's CustomAttributes when setOriginalMetadata is called.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/formats/ome/OMEXMLMetadataStore.java

    r2800 r2822  
    6565  private double[] channelMaximum; 
    6666 
     67  /** First Image's CustomAttributes node. */ 
     68  private CustomAttributesNode firstImageCA; 
     69 
    6770  // -- Constructor -- 
    6871 
     
    9699  /** Creates a new key/value pair. */ 
    97100  public void setOriginalMetadata(String key, String value) { 
    98     ImageNode image = (ImageNode) getChild(root, "Image", 0); 
    99     CustomAttributesNode ca = (CustomAttributesNode) 
    100       getChild(image, "CustomAttributes", 0); 
    101  
    102     Vector original = 
    103       DOMUtil.getChildElements("OriginalMetadata", ca.getDOMElement()); 
    104     if (original.size() == 0) { 
    105       Element el = DOMUtil.createChild(root.getDOMElement(), 
    106         "SemanticTypeDefinitions"); 
    107       OMEXMLNode node = OMEXMLNode.createNode(el); 
    108       node.setAttribute("xmlns", 
    109         "http://www.openmicroscopy.org/XMLschemas/STD/RC2/STD.xsd"); 
    110       el = DOMUtil.createChild(el, "SemanticType"); 
    111       node = OMEXMLNode.createNode(el); 
    112       node.setAttribute("Name", "OriginalMetadata"); 
    113       node.setAttribute("AppliesTo", "I"); 
    114  
    115       Element nameElement = DOMUtil.createChild(el, "Element"); 
    116       OMEXMLNode nameNode = OMEXMLNode.createNode(nameElement); 
    117       nameNode.setAttribute("Name", "name"); 
    118       nameNode.setAttribute("DBLocation", "ORIGINAL_METADATA.NAME"); 
    119       nameNode.setAttribute("DataType", "string"); 
    120  
    121       Element valueElement = DOMUtil.createChild(el, "Element"); 
    122       OMEXMLNode valueNode = OMEXMLNode.createNode(valueElement); 
    123       valueElement.setAttribute("Name", "value"); 
    124       valueElement.setAttribute("DBLocation", "ORIGINAL_METADATA.VALUE"); 
    125       valueElement.setAttribute("DataType", "string"); 
    126     } 
    127  
    128     Element el = DOMUtil.createChild(ca.getDOMElement(), "OriginalMetadata"); 
     101    if (firstImageCA == null) {  
     102      ImageNode image = (ImageNode) getChild(root, "Image", 0); 
     103      firstImageCA =  
     104        (CustomAttributesNode) getChild(image, "CustomAttributes", 0); 
     105 
     106      Vector original = DOMUtil.getChildElements("OriginalMetadata",  
     107        firstImageCA.getDOMElement()); 
     108      if (original.size() == 0) { 
     109        Element el = DOMUtil.createChild(root.getDOMElement(), 
     110          "SemanticTypeDefinitions"); 
     111        OMEXMLNode node = OMEXMLNode.createNode(el); 
     112        node.setAttribute("xmlns", 
     113          "http://www.openmicroscopy.org/XMLschemas/STD/RC2/STD.xsd"); 
     114        el = DOMUtil.createChild(el, "SemanticType"); 
     115        node = OMEXMLNode.createNode(el); 
     116        node.setAttribute("Name", "OriginalMetadata"); 
     117        node.setAttribute("AppliesTo", "I"); 
     118 
     119        Element nameElement = DOMUtil.createChild(el, "Element"); 
     120        OMEXMLNode nameNode = OMEXMLNode.createNode(nameElement); 
     121        nameNode.setAttribute("Name", "name"); 
     122        nameNode.setAttribute("DBLocation", "ORIGINAL_METADATA.NAME"); 
     123        nameNode.setAttribute("DataType", "string"); 
     124 
     125        Element valueElement = DOMUtil.createChild(el, "Element"); 
     126        OMEXMLNode valueNode = OMEXMLNode.createNode(valueElement); 
     127        valueElement.setAttribute("Name", "value"); 
     128        valueElement.setAttribute("DBLocation", "ORIGINAL_METADATA.VALUE"); 
     129        valueElement.setAttribute("DataType", "string"); 
     130      } 
     131    } 
     132 
     133    Element el =  
     134      DOMUtil.createChild(firstImageCA.getDOMElement(), "OriginalMetadata"); 
    129135    OMEXMLNode node = OMEXMLNode.createNode(el); 
    130136    node.setAttribute("name", key); 
Note: See TracChangeset for help on using the changeset viewer.