Changeset 2631


Ignore:
Timestamp:
04/17/07 13:31:04 (13 years ago)
Author:
melissa
Message:

Record values from the metadata hashtable in OME-XML using a custom ST (OriginalMetadata).

Location:
trunk/loci/formats
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/formats/FormatReader.java

    r2616 r2631  
    2727import java.awt.image.BufferedImage; 
    2828import java.io.IOException; 
     29import java.lang.reflect.Method; 
    2930import java.util.*; 
    3031 
     
    165166    } 
    166167    metadata.put(key, value); 
     168  
     169    try { 
     170      MetadataStore store = getMetadataStore(); 
     171      if (store.getClass().getName().equals( 
     172        "loci.formats.ome.OMEXMLMetadataStore")) 
     173      { 
     174        Method m = store.getClass().getMethod("setOriginalMetadata",  
     175          new Class[] {String.class, String.class}); 
     176        m.invoke(store, new Object[] {key, value.toString()});        
     177      }  
     178    } 
     179    catch (Throwable t) { 
     180      System.out.println("Error populating OME-XML"); 
     181      t.printStackTrace(); 
     182    } 
    167183  } 
    168184 
  • trunk/loci/formats/ome/OMEXMLMetadataStore.java

    r2566 r2631  
    8282 
    8383  /** 
    84    * Copies all of the data from this OMEXMLMetadataStore to a different 
    85    * MetadataStore. 
    86    */ 
    87   public void copyData(MetadataStore store) { 
    88   } 
    89  
    90   /** 
    9184   * Dumps the given OME-XML DOM tree to a string. 
    9285   * @return OME-XML as a string. 
     
    9992    catch (IOException exc) { exc.printStackTrace(); } 
    10093    return null; 
     94  } 
     95 
     96  /** Creates a new key/value pair. */  
     97  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(), "SemanticType"); 
     106      OMEXMLNode node = OMEXMLNode.createNode(el); 
     107      node.setAttribute("Name", "OriginalMetadata"); 
     108      node.setAttribute("AppliesTo", "I"); 
     109       
     110      Element nameElement = DOMUtil.createChild(el, "Element"); 
     111      OMEXMLNode nameNode = OMEXMLNode.createNode(nameElement);  
     112      nameNode.setAttribute("Name", "name"); 
     113      nameNode.setAttribute("DBLocation", "ORIGINAL_METADATA.NAME"); 
     114      nameNode.setAttribute("DataType", "string"); 
     115       
     116      Element valueElement = DOMUtil.createChild(el, "Element"); 
     117      OMEXMLNode valueNode = OMEXMLNode.createNode(valueElement);  
     118      valueElement.setAttribute("Name", "value"); 
     119      valueElement.setAttribute("DBLocation", "ORIGINAL_METADATA.VALUE"); 
     120      valueElement.setAttribute("DataType", "string"); 
     121    } 
     122 
     123    Element el = DOMUtil.createChild(ca.getDOMElement(), "OriginalMetadata"); 
     124    OMEXMLNode node = OMEXMLNode.createNode(el); 
     125    node.setAttribute("name", key); 
     126    node.setAttribute("value", value); 
    101127  } 
    102128 
Note: See TracChangeset for help on using the changeset viewer.