Changeset 6805


Ignore:
Timestamp:
08/17/10 15:12:27 (9 years ago)
Author:
melissa
Message:
  • Added convenience method to loci.common.IniList to flatten the IniTables into a HashMap.
  • Updated BDReader to store the contents of the metadata files in the original metadata hashtable. Closes #530.
Location:
trunk/components
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/components/bio-formats/src/loci/formats/in/BDReader.java

    r6791 r6805  
    2929import java.io.FileReader; 
    3030import java.io.IOException; 
     31import java.io.StringReader; 
    3132import java.util.Arrays; 
     33import java.util.HashMap; 
    3234import java.util.Vector; 
    3335 
     
    251253 
    252254    reader.close(); 
     255 
     256    if (getMetadataOptions().getMetadataLevel() != MetadataLevel.MINIMUM) { 
     257      IniParser parser = new IniParser(); 
     258      for (String metadataFile : metadataFiles) { 
     259        String filename = new Location(metadataFile).getName(); 
     260        if (!checkSuffix(metadataFile, "txt")) { 
     261          String data = DataTools.readFile(metadataFile); 
     262          IniList ini = 
     263            parser.parseINI(new BufferedReader(new StringReader(data))); 
     264          HashMap<String, String> h = ini.flattenIntoHashMap(); 
     265          for (String key : h.keySet()) { 
     266            addGlobalMeta(filename + " " + key, h.get(key)); 
     267          } 
     268        } 
     269      } 
     270    } 
    253271 
    254272    for (int i=0; i<getSeriesCount(); i++) { 
  • trunk/components/bio-formats/src/loci/formats/in/FEITiffReader.java

    r6797 r6805  
    2828import java.io.StringReader; 
    2929import java.util.ArrayList; 
     30import java.util.HashMap; 
    3031 
    3132import loci.common.DateTools; 
     
    164165 
    165166    if (getMetadataOptions().getMetadataLevel() != MetadataLevel.MINIMUM) { 
    166       for (IniTable table : ini) { 
    167         String tableName = table.get(IniTable.HEADER_KEY); 
    168         for (String key : table.keySet()) { 
    169           if (!key.equals(IniTable.HEADER_KEY)) { 
    170             addGlobalMeta("[" + tableName + "] " + key, table.get(key)); 
    171           } 
    172         } 
    173       } 
     167      HashMap<String, String> iniMap = ini.flattenIntoHashMap(); 
     168      metadata.putAll(iniMap); 
    174169    } 
    175170  } 
  • trunk/components/bio-formats/src/loci/formats/in/FV1000Reader.java

    r6786 r6805  
    2929import java.io.StringReader; 
    3030import java.util.Arrays; 
     31import java.util.HashMap; 
    3132import java.util.Hashtable; 
    3233import java.util.Vector; 
     
    505506      } 
    506507 
    507       for (IniTable table : f) { 
    508         String tableName = table.get(IniTable.HEADER_KEY); 
    509         String[] keys = table.keySet().toArray(new String[table.size()]); 
    510         for (String key : keys) { 
    511           addGlobalMeta(tableName + " " + key, table.get(key)); 
    512         } 
    513       } 
     508      HashMap<String, String> iniMap = f.flattenIntoHashMap(); 
     509      metadata.putAll(iniMap); 
    514510    } 
    515511 
  • trunk/components/bio-formats/src/loci/formats/in/SimplePCITiffReader.java

    r6801 r6805  
    2828import java.io.StringReader; 
    2929import java.util.ArrayList; 
     30import java.util.HashMap; 
    3031 
    3132import loci.common.DateTools; 
     
    181182 
    182183    if (getMetadataOptions().getMetadataLevel() != MetadataLevel.MINIMUM) { 
    183       for (IniTable table : ini) { 
    184         String tableName = table.get(IniTable.HEADER_KEY); 
    185         for (String key : table.keySet()) { 
    186           if (!key.equals(IniTable.HEADER_KEY)) { 
    187             addGlobalMeta("[" + tableName + "] " + key, table.get(key)); 
    188           } 
    189         } 
    190       } 
     184      HashMap<String, String> iniMap = ini.flattenIntoHashMap(); 
     185      metadata.putAll(iniMap); 
    191186    } 
    192187  } 
  • trunk/components/bio-formats/src/loci/formats/in/TillVisionReader.java

    r6786 r6805  
    2929import java.io.IOException; 
    3030import java.util.Arrays; 
     31import java.util.HashMap; 
    3132import java.util.Hashtable; 
    3233import java.util.Vector; 
     
    401402 
    402403        if (getMetadataOptions().getMetadataLevel() != MetadataLevel.MINIMUM) { 
    403           for (IniTable table : data) { 
    404             for (String key : table.keySet()) { 
    405               addSeriesMeta(key, table.get(key)); 
    406             } 
    407           } 
     404          HashMap<String, String> iniMap = data.flattenIntoHashMap(); 
     405          core[i].seriesMetadata.putAll(iniMap); 
    408406        } 
    409407      } 
  • trunk/components/common/src/loci/common/IniList.java

    r6050 r6805  
    2525 
    2626import java.util.ArrayList; 
     27import java.util.HashMap; 
    2728 
    2829/** 
     
    4849  } 
    4950 
     51  /** 
     52   * Flattens all of the INI tables into a single HashMap whose keys are 
     53   * of the format "[table name] table key". 
     54   */ 
     55  public HashMap<String, String> flattenIntoHashMap() { 
     56    HashMap<String, String> h = new HashMap<String, String>(); 
     57    for (IniTable table : this) { 
     58      String tableName = table.get(IniTable.HEADER_KEY); 
     59      for (String key : table.keySet()) { 
     60        if (!key.equals(IniTable.HEADER_KEY)) { 
     61          h.put("[" + tableName + "] " + key, table.get(key)); 
     62        } 
     63      } 
     64    } 
     65    return h; 
     66  } 
     67 
    5068} 
Note: See TracChangeset for help on using the changeset viewer.