Changeset 6735


Ignore:
Timestamp:
07/27/10 08:06:39 (9 years ago)
Author:
melissa
Message:
  • Handful of type checking fixes. See #273.
  • Strip whitespace from CellWorX filenames.
Location:
trunk/components/bio-formats/src/loci/formats/in
Files:
2 edited

Legend:

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

    r6655 r6735  
    4949public class APLReader extends FormatReader { 
    5050 
     51  // -- Constants -- 
     52 
     53  private static final String[] METADATA_SUFFIXES = 
     54    new String[] {"apl", "tnb", "mtb" }; 
     55 
    5156  // -- Fields -- 
    5257 
     
    6065  /** Constructs a new APL reader. */ 
    6166  public APLReader() { 
    62     super("Olympus APL", new String[] {"apl", "tnb", "mtb"}); 
     67    super("Olympus APL", new String[] {"apl", "tnb", "mtb", "tif"}); 
    6368    domains = new String[] {FormatTools.LM_DOMAIN}; 
    6469    hasCompanionFiles = true; 
     70    suffixSufficient = false; 
    6571  } 
    6672 
    6773  // -- IFormatReader API methods -- 
     74 
     75  /* @see loci.formats.IFormatReader#isThisType(String, boolean) */ 
     76  public boolean isThisType(String name, boolean open) { 
     77    if (checkSuffix(name, METADATA_SUFFIXES)) return true; 
     78    if (checkSuffix(name, "tif")) { 
     79      Location file = new Location(name).getAbsoluteFile(); 
     80      Location parent = file.getParentFile(); 
     81      if (parent != null) { 
     82        parent = parent.getParentFile(); 
     83        if (parent != null) { 
     84          String[] list = parent.list(true); 
     85          for (String f : list) { 
     86            if (checkSuffix(f, "mtb")) return true; 
     87          } 
     88        } 
     89      } 
     90    } 
     91    return false; 
     92  } 
    6893 
    6994  /* @see loci.formats.IFormatReader#isSingleFile(String) */ 
     
    77102    Vector<String> files = new Vector<String>(); 
    78103    files.addAll(used); 
    79     if (getSeries() < xmlFiles.length) files.add(xmlFiles[getSeries()]); 
    80     if (!noPixels && getSeries() < tiffFiles.length) { 
     104    if (getSeries() < xmlFiles.length && 
     105      new Location(xmlFiles[getSeries()]).exists()) 
     106    { 
     107      files.add(xmlFiles[getSeries()]); 
     108    } 
     109    if (!noPixels && getSeries() < tiffFiles.length && 
     110      new Location(tiffFiles[getSeries()]).exists()) 
     111    { 
    81112      files.add(tiffFiles[getSeries()]); 
    82113    } 
     
    121152 
    122153    // find the corresponding .mtb file 
    123     String name = id.toLowerCase(); 
    124     if (!name.endsWith(".mtb")) { 
    125       int separator = id.lastIndexOf(File.separator); 
    126       if (separator < 0) separator = 0; 
    127       int underscore = id.lastIndexOf("_"); 
    128       if (underscore < separator) underscore = id.lastIndexOf("."); 
    129       String mtbFile = id.substring(0, underscore) + "_d.mtb"; 
    130       if (!new Location(mtbFile).exists()) { 
    131         throw new FormatException(".mtb file not found"); 
    132       } 
    133       currentId = new Location(mtbFile).getAbsolutePath(); 
     154    if (!checkSuffix(id, "mtb")) { 
     155      if (checkSuffix(id, METADATA_SUFFIXES)) { 
     156        int separator = id.lastIndexOf(File.separator); 
     157        if (separator < 0) separator = 0; 
     158        int underscore = id.lastIndexOf("_"); 
     159        if (underscore < separator) underscore = id.lastIndexOf("."); 
     160        String mtbFile = id.substring(0, underscore) + "_d.mtb"; 
     161        if (!new Location(mtbFile).exists()) { 
     162          throw new FormatException(".mtb file not found"); 
     163        } 
     164        currentId = new Location(mtbFile).getAbsolutePath(); 
     165      } 
     166      else { 
     167        Location parent = new Location(id).getAbsoluteFile().getParentFile(); 
     168        parent = parent.getParentFile(); 
     169        String[] list = parent.list(true); 
     170        for (String f : list) { 
     171          if (checkSuffix(f, "mtb")) { 
     172            currentId = new Location(parent, f).getAbsolutePath(); 
     173            break; 
     174          } 
     175        } 
     176        if (!checkSuffix(currentId, "mtb")) { 
     177          throw new FormatException(".mtb file not found"); 
     178        } 
     179      } 
    134180    } 
    135181 
     
    165211 
    166212    used = new Vector<String>(); 
    167     used.add(id); 
    168     if (!id.equals(mtb)) used.add(mtb); 
    169     String tnb = id.substring(0, id.lastIndexOf(".")); 
     213    used.add(mtb); 
     214    String tnb = mtb.substring(0, mtb.lastIndexOf(".")); 
    170215    if (tnb.lastIndexOf("_") > tnb.lastIndexOf(File.separator)) { 
    171216      tnb = tnb.substring(0, tnb.lastIndexOf("_")); 
    172217    } 
    173218    used.add(tnb + "_1.tnb"); 
     219    used.add(tnb + ".apl"); 
     220    String idPath = new Location(id).getAbsolutePath(); 
     221    if (!used.contains(idPath)) used.add(idPath); 
    174222 
    175223    // calculate indexes to relevant metadata 
  • trunk/components/bio-formats/src/loci/formats/in/CellWorxReader.java

    r6692 r6735  
    6868  /** Constructs a new CellWorx reader. */ 
    6969  public CellWorxReader() { 
    70     super("CellWorx", new String[] {"pnl", "htd"}); 
     70    super("CellWorx", new String[] {"pnl", "htd", "log"}); 
    7171    domains = new String[] {FormatTools.HCS_DOMAIN}; 
    7272  } 
    7373 
    7474  // -- IFormatReader API methods -- 
     75 
     76  /* @see loci.formats.IFormatReader#isThisType(String, boolean) */ 
     77  public boolean isThisType(String name, boolean open) { 
     78    if (checkSuffix(name, "pnl") || checkSuffix(name, "htd")) { 
     79      return super.isThisType(name, open); 
     80    } 
     81 
     82    Location parent = new Location(name).getAbsoluteFile().getParentFile(); 
     83    String[] list = parent.list(true); 
     84    for (String file : list) { 
     85      if (checkSuffix(file, "htd")) return true; 
     86    } 
     87    return false; 
     88  } 
    7589 
    7690  /* @see loci.formats.IFormatReader#getSeriesUsedFiles(boolean) */ 
     
    133147      base = base.substring(0, base.lastIndexOf("_")); 
    134148      id = base + ".HTD"; 
     149 
     150      if (!new Location(id).exists()) { 
     151        Location parent = new Location(id).getAbsoluteFile().getParentFile(); 
     152        String[] list = parent.list(true); 
     153        for (String f : list) { 
     154          if (checkSuffix(f, "htd")) { 
     155            id = new Location(parent, f).getAbsolutePath(); 
     156            break; 
     157          } 
     158        } 
     159      } 
    135160    } 
    136161 
     
    219244        if (line.trim().startsWith("Z Map File")) { 
    220245          String file = line.substring(line.indexOf(":") + 1); 
    221           file = file.substring(file.lastIndexOf("/") + 1); 
     246          file = file.substring(file.lastIndexOf("/") + 1).trim(); 
    222247          String parent = new Location(id).getAbsoluteFile().getParent(); 
    223248          zMapFile = new Location(parent, file).getAbsolutePath(); 
Note: See TracChangeset for help on using the changeset viewer.