Changeset 6234


Ignore:
Timestamp:
05/05/10 14:28:36 (10 years ago)
Author:
melissa
Message:
  • Fixed compile errors introduced in r6230.
  • Added transformations from old OME-XML schema versions to 2010-04. This needs more testing.
Location:
trunk
Files:
6 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/ant/toplevel.xml

    r6187 r6234  
    1717    depends="copy-jars, 
    1818      jar-autogen, 
    19       jar-bf-ice, 
    2019      jar-checks, 
    2120      jar-common, 
     
    3029      jar-ome-editor, 
    3130      jar-ome-io, 
    32       jar-ome-notes, 
    3331      jar-ome-plugins, 
    3432      jar-ome-xml, 
     
    4240    depends="copy-jars, 
    4341      osgi-autogen, 
    44       osgi-bf-ice, 
    4542      osgi-checks, 
    4643      osgi-common, 
     
    5552      osgi-ome-editor, 
    5653      osgi-ome-io, 
    57       osgi-ome-notes, 
    5854      osgi-ome-plugins, 
    5955      osgi-ome-xml, 
     
    9490    depends=" 
    9591      clean-autogen, 
    96       clean-bf-ice, 
    9792      clean-checks, 
    9893      clean-common, 
     
    107102      clean-ome-editor, 
    108103      clean-ome-io, 
    109       clean-ome-notes, 
    110104      clean-ome-plugins, 
    111105      clean-ome-xml, 
     
    121115  <target name="test" 
    122116    depends="test-autogen, 
    123       test-bf-ice, 
    124117      test-checks, 
    125118      test-common, 
     
    134127      test-ome-editor, 
    135128      test-ome-io, 
    136       test-ome-notes, 
    137129      test-ome-plugins, 
    138130      test-ome-xml, 
  • trunk/components/bio-formats/src/loci/formats/services/OMEXMLService.java

    r6026 r6234  
    4343   */ 
    4444  public String getLatestVersion(); 
     45 
     46  /** 
     47   * Transforms the given OME-XML string to the latest supported version of 
     48   * of the OME-XML schema. 
     49   */ 
     50  public String transformToLatestVersion(String xml) throws ServiceException; 
    4551 
    4652  /** 
     
    177183   */ 
    178184  public void convertMetadata(MetadataRetrieve src, MetadataStore dest); 
    179    
     185 
    180186  // -- Utility methods - casting -- 
    181187 
  • trunk/components/bio-formats/src/loci/formats/services/OMEXMLServiceImpl.java

    r6233 r6234  
    6666    LoggerFactory.getLogger(OMEXMLService.class); 
    6767 
    68   /** Reorderingstylesheet. */ 
     68  /** Reordering stylesheet. */ 
    6969  private static Templates reorderXSLT = 
    7070    XMLTools.getStylesheet("/loci/formats/meta/reorder-2008-09.xsl", 
    7171                           OMEXMLServiceImpl.class); 
    7272 
     73  /** Stylesheets for updating from previous schema releases. */ 
     74  private static Templates UPDATE_2003FC = 
     75    XMLTools.getStylesheet("/loci/formats/meta/2003-FC-to-2008-09.xsl", 
     76    OMEXMLServiceImpl.class); 
     77  private static Templates UPDATE_2006LO = 
     78    XMLTools.getStylesheet("/loci/formats/meta/2006-LO-to-2008-09.xsl", 
     79    OMEXMLServiceImpl.class); 
     80  private static Templates UPDATE_200706 = 
     81    XMLTools.getStylesheet("/loci/formats/meta/2007-06-to-2008-09.xsl", 
     82    OMEXMLServiceImpl.class); 
     83  private static Templates UPDATE_200802 = 
     84    XMLTools.getStylesheet("/loci/formats/meta/2008-02-to-2008-09.xsl", 
     85    OMEXMLServiceImpl.class); 
     86  private static Templates UPDATE_200809 = 
     87    XMLTools.getStylesheet("/loci/formats/meta/2008-09-to-2009-09.xsl", 
     88    OMEXMLServiceImpl.class); 
     89  private static Templates UPDATE_200909 = 
     90    XMLTools.getStylesheet("/loci/formats/meta/2009-09-to-2010-04.xsl", 
     91    OMEXMLServiceImpl.class); 
     92 
    7393  /** 
    7494   * Default constructor. 
     
    84104  public String getLatestVersion() { 
    85105    return OMEXMLFactory.LATEST_VERSION; 
     106  } 
     107 
     108  /* @see OMEXMLService#transformToLatestVersion(String) */ 
     109  public String transformToLatestVersion(String xml) throws ServiceException { 
     110    String version = getOMEXMLVersion(createOMEXMLRoot(xml)); 
     111    if (version.equals(getLatestVersion())) return xml; 
     112 
     113    String transformed = null; 
     114    try { 
     115      if (version.equals("2003-FC")) { 
     116        transformed = XMLTools.transformXML(xml, UPDATE_2003FC); 
     117      } 
     118      else if (version.equals("2006-LO")) { 
     119        transformed = XMLTools.transformXML(xml, UPDATE_2006LO); 
     120      } 
     121      else if (version.equals("2007-06")) { 
     122        transformed = XMLTools.transformXML(xml, UPDATE_200706); 
     123      } 
     124      else if (version.equals("2008-02")) { 
     125        transformed = XMLTools.transformXML(xml, UPDATE_200802); 
     126      } 
     127      else transformed = xml; 
     128 
     129      if (!version.equals("2009-09")) { 
     130        transformed = XMLTools.transformXML(transformed, UPDATE_200809); 
     131      } 
     132      return XMLTools.transformXML(transformed, UPDATE_200909); 
     133    } 
     134    catch (IOException e) { 
     135      LOGGER.warn("Could not transform version " + version + " OME-XML."); 
     136    } 
     137    return null; 
    86138  } 
    87139 
     
    115167        // extract schema version from OME root node 
    116168        version = ome.getVersion(); 
    117  
    118         // TODO : transform XML to most recent version, if necessary 
    119169      } 
    120170    } 
     
    123173    String metaClass = "loci.formats.ome.OMEXMLMetadataImpl"; 
    124174    try { 
    125       Class<? extends OMEXMLMetadata> klass =  
     175      Class<? extends OMEXMLMetadata> klass = 
    126176        (Class<? extends OMEXMLMetadata>) Class.forName(metaClass); 
    127177      OMEXMLMetadata meta = klass.newInstance(); 
     
    170220  private OMEXMLNode createRoot(String xml) throws ServiceException { 
    171221    try { 
    172       return OMEXMLFactory.newOMENodeFromSource(xml); 
     222      return OMEXMLFactory.newOMENodeFromSource(transformToLatestVersion(xml)); 
    173223    } 
    174224    catch (Exception e) { 
  • trunk/components/legacy/ome-editor/src/loci/ome/editor/MetadataPane.java

    r6026 r6234  
    8383import loci.formats.in.TiffReader; 
    8484import loci.formats.meta.IMetadata; 
    85 import loci.formats.ome.OMEXML2003FCMetadata; 
    8685import loci.formats.ome.OMEXMLMetadata; 
    8786import loci.formats.services.OMEXMLService; 
     
    9291import ome.xml.DOMUtil; 
    9392import ome.xml.OMEXMLNode; 
     93import ome.xml.r201004.enums.DimensionOrder; 
     94import ome.xml.r201004.enums.EnumerationException; 
     95import ome.xml.r201004.primitives.PositiveInteger; 
    9496 
    9597import org.openmicroscopy.xml.AttributeNode; 
     
    474476        IMetadata meta = service.createOMEXMLMetadata(); 
    475477        writer.setMetadataRetrieve(meta); 
    476         meta.setPixelsBigEndian(new Boolean(!reader.isLittleEndian()), 0, 0); 
    477         meta.setPixelsDimensionOrder(reader.getDimensionOrder(), 0, 0); 
    478         meta.setPixelsSizeX(new Integer(reader.getSizeX()), 0, 0); 
    479         meta.setPixelsSizeY(new Integer(reader.getSizeY()), 0, 0); 
    480         meta.setPixelsSizeZ(new Integer(reader.getSizeZ()), 0, 0); 
    481         meta.setPixelsSizeC(new Integer(reader.getSizeC()), 0, 0); 
    482         meta.setPixelsSizeT(new Integer(reader.getSizeT()), 0, 0); 
     478        meta.setPixelsBinDataBigEndian( 
     479          new Boolean(!reader.isLittleEndian()), 0, 0); 
     480        try { 
     481          meta.setPixelsDimensionOrder( 
     482            DimensionOrder.fromString(reader.getDimensionOrder()), 0); 
     483        } 
     484        catch (EnumerationException e) { } 
     485        meta.setPixelsSizeX( 
     486          new PositiveInteger(new Integer(reader.getSizeX())), 0); 
     487        meta.setPixelsSizeY( 
     488          new PositiveInteger(new Integer(reader.getSizeY())), 0); 
     489        meta.setPixelsSizeZ( 
     490          new PositiveInteger(new Integer(reader.getSizeZ())), 0); 
     491        meta.setPixelsSizeC( 
     492          new PositiveInteger(new Integer(reader.getSizeC())), 0); 
     493        meta.setPixelsSizeT( 
     494          new PositiveInteger(new Integer(reader.getSizeT())), 0); 
    483495        writer.setId(outId); 
    484496      } 
     
    582594      String id = currentFile.getPath(); 
    583595      ImageReader read = new ImageReader(); 
    584       OMEXMLMetadata oms = new OMEXML2003FCMetadata(); 
     596      OMEXMLMetadata oms = 
     597        (OMEXMLMetadata) MetadataTools.createOMEXMLMetadata(); 
    585598      read.setMetadataStore(oms); 
    586599 
     
    815828      try { 
    816829        reader = new BufferedImageReader(); 
    817         ms = new OMEXML2003FCMetadata(); 
     830        ms = (OMEXMLMetadata) MetadataTools.createOMEXMLMetadata(); 
    818831 
    819832        // tell reader to write metadata as it's being 
  • trunk/components/ome-io/src/loci/ome/io/OMEWriter.java

    r6026 r6234  
    187187    } 
    188188 
    189     int x = metadataRetrieve.getPixelsSizeX(series, 0).intValue(); 
    190     int y = metadataRetrieve.getPixelsSizeY(series, 0).intValue(); 
    191     int z = metadataRetrieve.getPixelsSizeZ(series, 0).intValue(); 
    192     int c = metadataRetrieve.getPixelsSizeC(series, 0).intValue(); 
    193     int t = metadataRetrieve.getPixelsSizeT(series, 0).intValue(); 
    194     String order = metadataRetrieve.getPixelsDimensionOrder(series, 0); 
    195     String pixelTypeString = metadataRetrieve.getPixelsPixelType(series, 0); 
     189    int x = metadataRetrieve.getPixelsSizeX(series).getValue().intValue(); 
     190    int y = metadataRetrieve.getPixelsSizeY(series).getValue().intValue(); 
     191    int z = metadataRetrieve.getPixelsSizeZ(series).getValue().intValue(); 
     192    int c = metadataRetrieve.getPixelsSizeC(series).getValue().intValue(); 
     193    int t = metadataRetrieve.getPixelsSizeT(series).getValue().intValue(); 
     194    String order = metadataRetrieve.getPixelsDimensionOrder(series).toString(); 
     195    String pixelTypeString = metadataRetrieve.getPixelsType(series).toString(); 
    196196    int pixelType = FormatTools.pixelTypeFromString(pixelTypeString); 
    197197    int bpp = FormatTools.getBytesPerPixel(pixelType); 
    198198    boolean bigEndian = 
    199       metadataRetrieve.getPixelsBigEndian(series, 0).booleanValue(); 
     199      metadataRetrieve.getPixelsBinDataBigEndian(series, 0).booleanValue(); 
    200200 
    201201    try { 
     
    253253        r.setVar("NOW", "now"); 
    254254 
    255         String creationDate = metadataRetrieve.getImageCreationDate(series); 
     255        String creationDate = metadataRetrieve.getImageAcquiredDate(series); 
    256256        if (creationDate == null) { 
    257257          creationDate = 
  • trunk/components/ome-io/src/loci/ome/io/OmeroReader.java

    r6050 r6234  
    264264    MetadataTools.populatePixels(store, this); 
    265265 
    266     store.setDimensionsPhysicalSizeX(new Double(px), 0, 0); 
    267     store.setDimensionsPhysicalSizeY(new Double(py), 0, 0); 
    268     store.setDimensionsPhysicalSizeZ(new Double(pz), 0, 0); 
     266    store.setPixelsPhysicalSizeX(new Double(px), 0); 
     267    store.setPixelsPhysicalSizeY(new Double(py), 0); 
     268    store.setPixelsPhysicalSizeZ(new Double(pz), 0); 
    269269  } 
    270270 
  • trunk/components/ome-plugins/src/loci/plugins/ome/LociUploader.java

    r6026 r6234  
    5151import loci.plugins.util.LibraryChecker; 
    5252 
     53import ome.xml.r201004.enums.DimensionOrder; 
     54import ome.xml.r201004.enums.EnumerationException; 
     55import ome.xml.r201004.enums.PixelType; 
     56import ome.xml.r201004.primitives.PositiveInteger; 
     57 
    5358/** 
    5459 * ImageJ plugin for uploading images to an OME server. 
     
    172177        } 
    173178 
    174         store.setPixelsSizeX(new Integer(imp.getWidth()), 0, 0); 
    175         store.setPixelsSizeY(new Integer(imp.getHeight()), 0, 0); 
    176         store.setPixelsSizeZ(new Integer(imp.getNSlices()), 0, 0); 
    177         store.setPixelsSizeC(new Integer(imp.getNChannels()), 0, 0); 
    178         store.setPixelsSizeT(new Integer(imp.getNFrames()), 0, 0); 
    179         store.setPixelsPixelType( 
    180           FormatTools.getPixelTypeString(pixelType), 0, 0); 
    181         store.setPixelsBigEndian(fi == null ? 
     179        store.setPixelsSizeX( 
     180          new PositiveInteger(new Integer(imp.getWidth())), 0); 
     181        store.setPixelsSizeY( 
     182          new PositiveInteger(new Integer(imp.getHeight())), 0); 
     183        store.setPixelsSizeZ( 
     184          new PositiveInteger(new Integer(imp.getNSlices())), 0); 
     185        store.setPixelsSizeC( 
     186          new PositiveInteger(new Integer(imp.getNChannels())), 0); 
     187        store.setPixelsSizeT( 
     188          new PositiveInteger(new Integer(imp.getNFrames())), 0); 
     189        try { 
     190          store.setPixelsType( 
     191            PixelType.fromString(FormatTools.getPixelTypeString(pixelType)), 0); 
     192        } 
     193        catch (EnumerationException e) { } 
     194        store.setPixelsBinDataBigEndian(fi == null ? 
    182195          Boolean.TRUE : new Boolean(!fi.intelByteOrder), 0, 0); 
    183196        // TODO : figure out a way to calculate the dimension order 
    184         store.setPixelsDimensionOrder("XYCZT", 0, 0); 
     197        store.setPixelsDimensionOrder(DimensionOrder.XYCZT, 0); 
    185198 
    186199        String name = fi == null ? imp.getTitle() : fi.fileName; 
     
    192205      ul.setId(id); 
    193206 
    194       boolean little = !retrieve.getPixelsBigEndian(0, 0).booleanValue(); 
     207      boolean little = !retrieve.getPixelsBinDataBigEndian(0, 0).booleanValue(); 
    195208 
    196209      for (int i=0; i<is.getSize(); i++) { 
     
    215228            ((ColorProcessor) is.getProcessor(i+1)).getRGB(rgb[0], 
    216229              rgb[1], rgb[2]); 
    217             int channels = retrieve.getPixelsSizeC(0, 0).intValue(); 
     230            int channels = 
     231              ((Integer) retrieve.getPixelsSizeC(0).getValue()).intValue(); 
    218232            if (channels > 3) channels = 3; 
    219233            toUpload = new byte[channels * rgb[0].length]; 
  • trunk/components/test-suite/src/loci/tests/testng/FormatReaderTest.java

    r6026 r6234  
    362362        String type = FormatTools.getPixelTypeString(reader.getPixelType()); 
    363363 
    364         if (reader.getSizeX() != retrieve.getPixelsSizeX(i, 0).intValue()) { 
     364        if (reader.getSizeX() != 
     365          retrieve.getPixelsSizeX(i).getValue().intValue()) 
     366        { 
    365367          msg = "SizeX"; 
    366368        } 
    367         if (reader.getSizeY() != retrieve.getPixelsSizeY(i, 0).intValue()) { 
     369        if (reader.getSizeY() != 
     370          retrieve.getPixelsSizeY(i).getValue().intValue()) 
     371        { 
    368372          msg = "SizeY"; 
    369373        } 
    370         if (reader.getSizeZ() != retrieve.getPixelsSizeZ(i, 0).intValue()) { 
     374        if (reader.getSizeZ() != 
     375          retrieve.getPixelsSizeZ(i).getValue().intValue()) 
     376        { 
    371377          msg = "SizeZ"; 
    372378        } 
    373         if (reader.getSizeC() != retrieve.getPixelsSizeC(i, 0).intValue()) { 
     379        if (reader.getSizeC() != 
     380          retrieve.getPixelsSizeC(i).getValue().intValue()) 
     381        { 
    374382          msg = "SizeC"; 
    375383        } 
    376         if (reader.getSizeT() != retrieve.getPixelsSizeT(i, 0).intValue()) { 
     384        if (reader.getSizeT() != 
     385          retrieve.getPixelsSizeT(i).getValue().intValue()) 
     386        { 
    377387          msg = "SizeT"; 
    378388        } 
    379389        if (reader.isLittleEndian() == 
    380           retrieve.getPixelsBigEndian(i, 0).booleanValue()) 
     390          retrieve.getPixelsBinDataBigEndian(i, 0).booleanValue()) 
    381391        { 
    382392          msg = "BigEndian"; 
    383393        } 
    384394        if (!reader.getDimensionOrder().equals( 
    385           retrieve.getPixelsDimensionOrder(i, 0))) 
     395          retrieve.getPixelsDimensionOrder(i).toString())) 
    386396        { 
    387397          msg = "DimensionOrder"; 
    388398        } 
    389         if (!type.equalsIgnoreCase(retrieve.getPixelsPixelType(i, 0))) { 
     399        if (!type.equalsIgnoreCase(retrieve.getPixelsType(i).toString())) { 
    390400          msg = "PixelType"; 
    391401        } 
     
    413423      for (int i=0; i<reader.getSeriesCount() && msg == null; i++) { 
    414424        // total number of ChannelComponents should match SizeC 
    415         int sizeC = retrieve.getPixelsSizeC(i, 0).intValue(); 
    416         int nChannelComponents = 0; 
    417         for (int c=0; c<retrieve.getLogicalChannelCount(i); c++) { 
    418           nChannelComponents += retrieve.getChannelComponentCount(i, c); 
    419         } 
     425        int sizeC = retrieve.getPixelsSizeC(i).getValue().intValue(); 
     426        int nChannelComponents = retrieve.getChannelCount(i); 
    420427 
    421428        if (sizeC != nChannelComponents) msg = "ChannelComponent"; 
    422429 
    423         // all LogicalChannels should have at least one ChannelComponent 
    424  
    425         for (int c=0; c<retrieve.getLogicalChannelCount(i) && msg == null; c++) 
    426         { 
    427           if (retrieve.getChannelComponentCount(i, c) == 0) { 
    428             msg = "LogicalChannel"; 
    429           } 
    430         } 
    431  
    432430        // Z, C and T indices should be populated if PlaneTiming is present 
    433431 
    434         Double deltaT = retrieve.getPlaneTimingDeltaT(i, 0, 0); 
    435         Double exposure = retrieve.getPlaneTimingExposureTime(i, 0, 0); 
    436         Integer z = retrieve.getPlaneTheZ(i, 0, 0); 
    437         Integer c = retrieve.getPlaneTheC(i, 0, 0); 
    438         Integer t = retrieve.getPlaneTheT(i, 0, 0); 
     432        Double deltaT = retrieve.getPlaneDeltaT(i, 0); 
     433        Double exposure = retrieve.getPlaneExposureTime(i, 0); 
     434        Integer z = retrieve.getPlaneTheZ(i, 0); 
     435        Integer c = retrieve.getPlaneTheC(i, 0); 
     436        Integer t = retrieve.getPlaneTheT(i, 0); 
    439437 
    440438        if ((deltaT != null || exposure != null) && 
     
    445443 
    446444        // if CreationDate is before 1995, it's probably invalid 
    447         String date = retrieve.getImageCreationDate(i); 
     445        String date = retrieve.getImageAcquiredDate(i); 
    448446        if (date != null && DateTools.getTime(date, DateTools.ISO8601_FORMAT) < 
    449447          DateTools.getTime("1995-01-01T00:00:00", DateTools.ISO8601_FORMAT)) 
  • trunk/components/visbio/src/loci/visbio/ome/ImageUploader.java

    r6026 r6234  
    8282      writer.setId(id); 
    8383 
    84       String order = retrieve.getPixelsDimensionOrder(0, 0); 
    85       int sizeZ = retrieve.getPixelsSizeZ(0, 0).intValue(); 
    86       int sizeC = retrieve.getPixelsSizeZ(0, 0).intValue(); 
    87       int sizeT = retrieve.getPixelsSizeZ(0, 0).intValue(); 
     84      String order = retrieve.getPixelsDimensionOrder(0).toString(); 
     85      int sizeZ = ((Integer) retrieve.getPixelsSizeZ(0).getValue()).intValue(); 
     86      int sizeC = ((Integer) retrieve.getPixelsSizeC(0).getValue()).intValue(); 
     87      int sizeT = ((Integer) retrieve.getPixelsSizeT(0).getValue()).intValue(); 
    8888 
    8989      int[] len = data.getLengths(); 
Note: See TracChangeset for help on using the changeset viewer.