@Override public void close() throws IOException { if (refCount > 0) refCount--; if (refCount == 0) super.close(); }
@Override public byte[] openBytes(int no, int x, int y, int w, int h) throws FormatException, IOException { return super.openBytes(reorder(no), x, y, w, h); }
/** * Perform BioFormats {@link ReaderWrapper#setId(String)} for this file. * @param reader the BioFormats reader upon which to operate * @throws FormatException passed up from {@link ReaderWrapper#setId(String)} * @throws IOException passed up from {@link ReaderWrapper#setId(String)} */ public void bfSetId(ReaderWrapper reader) throws FormatException, IOException { reader.setId(file.getPath()); }
/** * A helper may not exist before initFile() is called. This mean setters that would otherwise be * called on the helper are instead called on this wrapper, and can be passed to the helper by * calling this method * @param helper The wrapped helper */ protected void callDeferredSetters(ReaderWrapper helper) { // FormatHandler vars helper.setMetadataOptions(metadataOptions); // FormatReader vars helper.setGroupFiles(group); helper.setNormalized(normalizeData); helper.setOriginalMetadataPopulated(saveOriginalMetadata); helper.setMetadataFiltered(filterMetadata); helper.setMetadataStore(metadataStore); helper.setFlattenedResolutions(flattenedResolutions); } }
/** * Performs a deep copy of the reader, including nested wrapped readers. * Most of the reader state is preserved as well, including:<ul> * <li>{@link #isNormalized()}</li> * <li>{@link #isMetadataFiltered()}</li> * <li>{@link DelegateReader#isLegacy()}</li> * </ul> * * @param imageReaderClass If non-null, any {@link ImageReader}s in the * reader stack will be replaced with instances of the given class. * @throws FormatException If something goes wrong during the duplication. */ public ReaderWrapper duplicate( Class<? extends IFormatReader> imageReaderClass) throws FormatException { ReaderWrapper wrapperCopy = duplicateRecurse(imageReaderClass); // sync top-level configuration with original reader boolean normalized = isNormalized(); boolean metadataFiltered = isMetadataFiltered(); wrapperCopy.setNormalized(normalized); wrapperCopy.setMetadataFiltered(metadataFiltered); return wrapperCopy; }
/** * Unwraps nested wrapped readers until the given reader class is found. * * @param readerClass Class of the desired nested reader. If null, the * core reader (i.e., deepest wrapped reader) will be returned. * @param id Id to use as a basis when unwrapping any nested * {@link ImageReader}s. If null, the current id is used. */ public IFormatReader unwrap(Class<? extends IFormatReader> readerClass, String id) throws FormatException, IOException { IFormatReader r = this; while (r instanceof ReaderWrapper || r instanceof ImageReader) { if (readerClass != null && readerClass.isInstance(r)) break; if (r instanceof ImageReader) { ImageReader ir = (ImageReader) r; r = id == null ? ir.getReader() : ir.getReader(id); } else r = ((ReaderWrapper) r).getReader(); } if (readerClass != null && !readerClass.isInstance(r)) return null; return r; }
reader.setMetadataStore(userMetadataStore); super.setId(id); // EARLY EXIT return; super.setMetadataStore(service.createOMEXMLMetadata()); long start = System.currentTimeMillis(); super.setId(id); long elapsed = System.currentTimeMillis() - start;
@Override public String getDimensionOrder() { return getHelper().getDimensionOrder(); }
@Override public byte[] openThumbBytes(int no) throws FormatException, IOException { return super.openThumbBytes(reorder(no)); }
@Override public void setFlattenedResolutions(boolean flattened) { getHelper().setFlattenedResolutions(flattened); }
@Override public void setGroupFiles(boolean group) { getHelper().setGroupFiles(group); }
@Override public boolean isMetadataFiltered() { return getHelper().isMetadataFiltered(); }
@Override public boolean isNormalized() { return getHelper().isNormalized(); }
/** * A helper may not exist before initFile() is called. This mean setters that would otherwise be * called on the helper are instead called on this wrapper, and can be passed to the helper by * calling this method * @param helper The wrapped helper */ protected void callDeferredSetters(ReaderWrapper helper) { // FormatHandler vars helper.setMetadataOptions(metadataOptions); // FormatReader vars helper.setGroupFiles(group); helper.setNormalized(normalizeData); helper.setOriginalMetadataPopulated(saveOriginalMetadata); helper.setMetadataFiltered(filterMetadata); helper.setMetadataStore(metadataStore); helper.setFlattenedResolutions(flattenedResolutions); } }
/** * Performs a deep copy of the reader, including nested wrapped readers. * Most of the reader state is preserved as well, including:<ul> * <li>{@link #isNormalized()}</li> * <li>{@link #isMetadataFiltered()}</li> * <li>{@link DelegateReader#isLegacy()}</li> * </ul> * * @param imageReaderClass If non-null, any {@link ImageReader}s in the * reader stack will be replaced with instances of the given class. * @throws FormatException If something goes wrong during the duplication. */ public ReaderWrapper duplicate( Class<? extends IFormatReader> imageReaderClass) throws FormatException { ReaderWrapper wrapperCopy = duplicateRecurse(imageReaderClass); // sync top-level configuration with original reader boolean normalized = isNormalized(); boolean metadataFiltered = isMetadataFiltered(); wrapperCopy.setNormalized(normalized); wrapperCopy.setMetadataFiltered(metadataFiltered); return wrapperCopy; }
/** * Unwraps nested wrapped readers until the given reader class is found. * * @param readerClass Class of the desired nested reader. If null, the * core reader (i.e., deepest wrapped reader) will be returned. * @param id Id to use as a basis when unwrapping any nested * {@link ImageReader}s. If null, the current id is used. */ public IFormatReader unwrap(Class<? extends IFormatReader> readerClass, String id) throws FormatException, IOException { IFormatReader r = this; while (r instanceof ReaderWrapper || r instanceof ImageReader) { if (readerClass != null && readerClass.isInstance(r)) break; if (r instanceof ImageReader) { ImageReader ir = (ImageReader) r; r = id == null ? ir.getReader() : ir.getReader(id); } else r = ((ReaderWrapper) r).getReader(); } if (readerClass != null && !readerClass.isInstance(r)) return null; return r; }
reader.setMetadataStore(userMetadataStore); super.setId(id); // EARLY EXIT return; super.setMetadataStore(service.createOMEXMLMetadata()); long start = System.currentTimeMillis(); super.setId(id); long elapsed = System.currentTimeMillis() - start;
@Override public String getDimensionOrder() { return getHelper().getDimensionOrder(); }
@Override public byte[] openThumbBytes(int no) throws FormatException, IOException { return getHelper().openThumbBytes(no); }
@Override public void setFlattenedResolutions(boolean flattened) { getHelper().setFlattenedResolutions(flattened); }