Changeset 2552


Ignore:
Timestamp:
04/04/07 05:41:34 (13 years ago)
Author:
curtis
Message:

Remove org.openmicroscopy.xml and loci.formats.ome dependencies
from OMEXMLReader.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/formats/in/OMEXMLReader.java

    r2535 r2552  
    3131import loci.formats.*; 
    3232import loci.formats.codec.Base64Codec; 
    33 import loci.formats.ome.OMEXMLMetadataStore; 
    34 import org.openmicroscopy.xml.OMENode; 
    3533 
    3634/** 
     
    9997 
    10098  /** Internal OME-XML store, for convenient access to metadata fields. */ 
    101   private OMEXMLMetadataStore omexml; 
     99  private Object omexml; 
    102100 
    103101  // -- Constructor -- 
     
    236234    if (in != null) in.close(); 
    237235    in = null; 
    238     if (omexml != null) omexml.createRoot(); 
    239236    omexml = null; 
    240237    currentId = null; 
     
    248245 
    249246    in = new RandomAccessStream(id); 
    250     omexml = new OMEXMLMetadataStore(); 
     247    ReflectedUniverse r = new ReflectedUniverse(); 
     248    try { 
     249      r.exec("import loci.formats.ome.OMEXMLMetadataStore"); 
     250      r.exec("import org.openmicroscopy.xml.OMENode"); 
     251      omexml = r.exec("omexml = new OMEXMLMetadataStore()"); 
     252    } 
     253    catch (ReflectException exc) { 
     254      throw new FormatException(exc); 
     255    } 
    251256 
    252257    status("Determining endianness"); 
     
    378383    status("Populating metadata"); 
    379384 
    380     OMENode ome = null; 
     385    r.setVar("ome", null); 
    381386    try { 
    382387      File f = new File(Location.getMappedId(id)); 
    383388      f = f.getAbsoluteFile(); 
    384       if (f.exists()) ome = new OMENode(f); 
     389      if (f.exists()) { 
     390        r.setVar("f", f); 
     391        r.exec("ome = new OMENode(f)"); 
     392      } 
    385393      else { 
    386394        byte[] b = new byte[(int) in.length()]; 
     
    389397        in.read(b); 
    390398        in.seek(oldFp); 
    391         ome = new OMENode(new String(b)); 
     399        r.setVar("s", new String(b)); 
     400        r.exec("ome = new OMENode(s)"); 
    392401        b = null; 
    393402      } 
    394403    } 
    395     catch (Exception exc) { 
    396       // CTR TODO - eliminate catch-all exception handling 
     404    catch (ReflectException exc) { 
    397405      throw new FormatException(exc); 
    398406    } 
    399     MetadataStore store = getMetadataStore(id); 
    400     store.setRoot(ome); 
     407    try { 
     408      r.exec("omexml.setRoot(ome)"); 
     409    } 
     410    catch (ReflectException exc) { 
     411      throw new FormatException(exc); 
     412    } 
    401413 
    402414    width = new int[numDatasets]; 
     
    415427    int oldSeries = getSeries(currentId); 
    416428 
    417     omexml.setRoot(ome); 
     429    try { 
     430      r.exec("omexml.setRoot(ome)"); 
     431    } 
     432    catch (ReflectException exc) { 
     433      throw new FormatException(exc); 
     434    } 
    418435    for (int i=0; i<numDatasets; i++) { 
    419436      setSeries(currentId, i); 
    420437      Integer ndx = new Integer(i); 
    421       width[i] = omexml.getSizeX(ndx).intValue(); 
    422       height[i] = omexml.getSizeY(ndx).intValue(); 
    423       numT[i] = omexml.getSizeT(ndx).intValue(); 
    424       numZ[i] = omexml.getSizeZ(ndx).intValue(); 
    425       numChannels[i] = omexml.getSizeC(ndx).intValue(); 
    426  
    427       String type = omexml.getPixelType(ndx).toLowerCase(); 
     438      Integer w = null, h = null, t = null, z = null, c = null; 
     439      String pixType = null, dimOrder = null; 
     440      try { 
     441        r.setVar("ndx", i); 
     442        w = (Integer) r.exec("omexml.getSizeX(ndx)"); 
     443        h = (Integer) r.exec("omexml.getSizeY(ndx)"); 
     444        t = (Integer) r.exec("omexml.getSizeT(ndx)"); 
     445        z = (Integer) r.exec("omexml.getSizeZ(ndx)"); 
     446        c = (Integer) r.exec("omexml.getSizeC(ndx)"); 
     447        pixType = (String) r.exec("omexml.getPixelType(ndx)"); 
     448        dimOrder = (String) r.exec("omexml.getDimensionOrder(ndx)"); 
     449      } 
     450      catch (ReflectException exc) { 
     451        throw new FormatException(exc); 
     452      } 
     453      width[i] = w.intValue(); 
     454      height[i] = h.intValue(); 
     455      numT[i] = t.intValue(); 
     456      numZ[i] = z.intValue(); 
     457      numChannels[i] = c.intValue(); 
     458 
     459      String type = pixType.toLowerCase(); 
    428460      if (type.endsWith("16")) { 
    429461        bpp[i] = 2; 
     
    443475      } 
    444476 
    445       order[i] = omexml.getDimensionOrder(ndx); 
     477      order[i] = dimOrder; 
    446478 
    447479      // calculate the number of raw bytes of pixel data that we are expecting 
     
    485517    Arrays.fill(orderCertain, true); 
    486518 
     519    MetadataStore store = getMetadataStore(id); 
    487520    for (int i=0; i<sizeC.length; i++) { 
    488521      for (int j=0; j<sizeC[i]; j++) { 
     
    492525    } 
    493526 
    494     try { 
    495       ome = new OMENode((String) null); 
    496     } 
    497     catch (Exception e) { } 
    498     ome = null; 
    499527    omexml = null; 
    500528    System.gc(); 
Note: See TracChangeset for help on using the changeset viewer.