Changeset 3000


Ignore:
Timestamp:
07/20/07 09:50:48 (13 years ago)
Author:
melissa
Message:

Prepend folder name to series name.

File:
1 edited

Legend:

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

    r2999 r3000  
    6464  private Vector zcal; 
    6565  private Vector seriesNames; 
     66  private Vector containerNames; 
     67  private Vector containerCounts; 
    6668 
    6769  // -- Constructor -- 
     
    202204    // parse raw key/value pairs - adapted from FlexReader 
    203205 
     206    containerNames = new Vector(); 
     207    containerCounts = new Vector(); 
     208    seriesNames = new Vector(); 
     209 
    204210    LIFHandler handler = new LIFHandler(); 
    205211 
     
    227233 
    228234    Vector elements = new Vector(); 
    229     seriesNames = new Vector(); 
    230235 
    231236    status("Populating native metadata"); 
     
    321326      else if (token.startsWith("Element Name")) { 
    322327        // loop until we find "/ImageDescription" 
    323         seriesNames.add(token.substring(token.indexOf("=") + 2, 
    324           token.length() - 1)); 
     328        //seriesNames.add(token.substring(token.indexOf("=") + 2, 
     329        //  token.length() - 1)); 
    325330 
    326331        numDatasets++; 
     
    334339            if (token.startsWith("Element Name")) { 
    335340              // hack to override first series name 
    336               seriesNames.setElementAt(token.substring(token.indexOf("=") + 2, 
    337                 token.length() - 1), seriesNames.size() - 1); 
    338               prefix = (String) seriesNames.get(seriesNames.size() - 1); 
     341              //seriesNames.setElementAt(token.substring(token.indexOf("=") + 2, 
     342              //  token.length() - 1), seriesNames.size() - 1); 
     343              //prefix = (String) seriesNames.get(seriesNames.size() - 1); 
     344              prefix = (String) seriesNames.get(numDatasets - 1);  
    339345            } 
    340346 
     
    516522  class LIFHandler extends DefaultHandler { 
    517523    private String series; 
     524    private String fullSeries; 
    518525    private int count = 0; 
     526    private boolean firstElement = true; 
    519527 
    520528    public void startElement(String uri, String localName, String qName, 
     
    522530    { 
    523531      if (qName.equals("Element")) { 
    524         if (!attributes.getValue("Name").equals("DCROISet")) { 
     532        if (!attributes.getValue("Name").equals("DCROISet") && !firstElement) { 
    525533          series = attributes.getValue("Name"); 
    526         } 
     534          containerNames.add(series);  
     535        } 
     536        else if (firstElement) firstElement = false;  
    527537      } 
    528538      else if (qName.equals("Experiment")) { 
     
    531541        } 
    532542      } 
     543      else if (qName.equals("Image")) { 
     544        containerNames.remove(series); 
     545        if (containerCounts.size() < containerNames.size()) { 
     546          containerCounts.add(new Integer(1)); 
     547        } 
     548        else { 
     549          int ndx = containerCounts.size() - 1; 
     550          int n = ((Integer) containerCounts.get(ndx)).intValue(); 
     551          containerCounts.setElementAt(new Integer(n + 1), ndx); 
     552        } 
     553        fullSeries = containerNames.get(containerNames.size() - 1) +  
     554          "/" + series; 
     555        seriesNames.add(fullSeries);  
     556      } 
    533557      else if (qName.equals("ChannelDescription")) { 
    534         String prefix = series + " - Channel " + count + " - "; 
     558        String prefix = fullSeries + " - Channel " + count + " - "; 
    535559        addMeta(prefix + "Min", attributes.getValue("Min")); 
    536560        addMeta(prefix + "Max", attributes.getValue("Max")); 
     
    541565      } 
    542566      else if (qName.equals("DimensionDescription")) { 
    543         String prefix = series + " - Dimension " + count + " - "; 
     567        String prefix = fullSeries + " - Dimension " + count + " - "; 
    544568        addMeta(prefix + "NumberOfElements", 
    545569          attributes.getValue("NumberOfElements")); 
     
    551575        String key = attributes.getValue("Identifier") + " - " + 
    552576          attributes.getValue("Description"); 
    553         addMeta(series + " - " + key, attributes.getValue("Variant")); 
     577        addMeta(fullSeries + " - " + key, attributes.getValue("Variant")); 
    554578      } 
    555579      else if (qName.equals("FilterSettingRecord")) { 
     
    557581          attributes.getValue("Description") + " - " + 
    558582          attributes.getValue("Attribute"); 
    559         addMeta(series + " - " + key, attributes.getValue("Variant")); 
     583        addMeta(fullSeries + " - " + key, attributes.getValue("Variant")); 
    560584      } 
    561585      else if (qName.equals("ATLConfocalSettingDefinition")) { 
    562         if (series.endsWith(" - Master sequential setting")) { 
    563           series = series.replaceAll(" - Master sequential setting", 
     586        if (fullSeries.endsWith(" - Master sequential setting")) { 
     587          fullSeries = fullSeries.replaceAll(" - Master sequential setting", 
    564588            " - Sequential Setting 0"); 
    565589        } 
    566590 
    567         if (series.indexOf("- Sequential Setting ") == -1) { 
    568           series += " - Master sequential setting"; 
     591        if (fullSeries.indexOf("- Sequential Setting ") == -1) { 
     592          fullSeries += " - Master sequential setting"; 
    569593        } 
    570594        else { 
    571           int ndx = series.indexOf(" - Sequential Setting ") + 22; 
    572           int n = Integer.parseInt(series.substring(ndx)); 
     595          int ndx = fullSeries.indexOf(" - Sequential Setting ") + 22; 
     596          int n = Integer.parseInt(fullSeries.substring(ndx)); 
    573597          n++; 
    574           series = series.substring(0, ndx) + String.valueOf(n); 
     598          fullSeries = fullSeries.substring(0, ndx) + String.valueOf(n); 
    575599        } 
    576600 
    577601        for (int i=0; i<attributes.getLength(); i++) { 
    578           addMeta(series + " - " + attributes.getQName(i), 
     602          addMeta(fullSeries + " - " + attributes.getQName(i), 
    579603            attributes.getValue(i)); 
    580604        } 
    581605      } 
    582606      else if (qName.equals("Wheel")) { 
    583         String prefix = series + " - Wheel " + count + " - "; 
     607        String prefix = fullSeries + " - Wheel " + count + " - "; 
    584608        addMeta(prefix + "Qualifier", attributes.getValue("Qualifier")); 
    585609        addMeta(prefix + "FilterIndex", attributes.getValue("FilterIndex")); 
     
    594618      } 
    595619      else if (qName.equals("WheelName")) { 
    596         String prefix = series + " - Wheel " + (count - 1) + " - WheelName "; 
     620        String prefix = fullSeries + " - Wheel " + (count - 1) + " - WheelName "; 
    597621        int ndx = 0; 
    598622        while (getMeta(prefix + ndx) != null) ndx++; 
     
    601625      } 
    602626      else if (qName.equals("MultiBand")) { 
    603         String prefix = series + " - MultiBand Channel " + 
     627        String prefix = fullSeries + " - MultiBand Channel " + 
    604628          attributes.getValue("Channel") + " - "; 
    605629        addMeta(prefix + "LeftWorld", attributes.getValue("LeftWorld")); 
     
    608632      } 
    609633      else if (qName.equals("LaserLineSetting")) { 
    610         String prefix = series + " - LaserLine " + 
     634        String prefix = fullSeries + " - LaserLine " + 
    611635          attributes.getValue("LaserLine") + " - "; 
    612636        addMeta(prefix + "IntensityDev", attributes.getValue("IntensityDev")); 
     
    625649      } 
    626650      else if (qName.equals("Detector")) { 
    627         String prefix = series + " - Detector Channel " + 
     651        String prefix = fullSeries + " - Detector Channel " + 
    628652          attributes.getValue("Channel") + " - "; 
    629653        addMeta(prefix + "IsActive", attributes.getValue("IsActive")); 
     
    634658      } 
    635659      else if (qName.equals("Laser")) { 
    636         String prefix = series + " Laser " + attributes.getValue("LaserName") + 
    637           " - "; 
     660        String prefix = fullSeries + " Laser " +  
     661          attributes.getValue("LaserName") + " - "; 
    638662        addMeta(prefix + "CanDoLinearOutputPower", 
    639663          attributes.getValue("CanDoLinearOutputPower")); 
     
    672696        String n = String.valueOf(count); 
    673697        while (n.length() < 4) n = "0" + n; 
    674         addMeta(series + " - TimeStamp " + n, sb.toString()); 
     698        addMeta(fullSeries + " - TimeStamp " + n, sb.toString()); 
    675699        count++; 
    676700      } 
    677701      else if (qName.equals("ChannelScalingInfo")) { 
    678         String prefix = series + " - ChannelScalingInfo " + count + " - "; 
     702        String prefix = fullSeries + " - ChannelScalingInfo " + count + " - "; 
    679703        addMeta(prefix + "WhiteValue", attributes.getValue("WhiteValue")); 
    680704        addMeta(prefix + "BlackValue", attributes.getValue("BlackValue")); 
     
    683707      } 
    684708      else if (qName.equals("RelTimeStamp")) { 
    685         addMeta(series + " RelTimeStamp " + attributes.getValue("Frame"), 
     709        addMeta(fullSeries + " RelTimeStamp " + attributes.getValue("Frame"), 
    686710          attributes.getValue("Time")); 
    687711      } 
Note: See TracChangeset for help on using the changeset viewer.