visad.data.bio
Class LociForm

java.lang.Object
  extended byvisad.data.FormNode
      extended byvisad.data.Form
          extended byvisad.data.bio.LociForm
All Implemented Interfaces:
FormBlockReader, FormFileInformer, FormProgressInformer, MetadataReader, OMEReader
Direct Known Subclasses:
AVIForm, BioRadForm, DeltavisionForm, FluoviewTiffForm, GatanForm, ICSForm, ImageJForm, ImageProSeqForm, IPLabForm, IPWForm, LegacyZVIForm, LeicaForm, MetamorphForm, OpenlabForm, PerkinElmerForm, PictForm, QTForm, TiffForm, ZeissForm, ZVIForm

public class LociForm
extends Form
implements FormBlockReader, FormFileInformer, FormProgressInformer, MetadataReader, OMEReader

LociForm is the VisAD data adapter for images handled by the loci.formats package. It works by wrapping a loci.formats.FormatReader and/or loci.formats.FormatWriter object.


Field Summary
protected  double percent
          Percent complete for current operation.
protected  FormatReader reader
          Reader to use for open-related functions.
protected  FormatWriter writer
          Writer to use for save-related functions.
 
Fields inherited from class visad.data.Form
mathType
 
Constructor Summary
LociForm()
          Constructs a new LociForm that handles anything from loci.formats.
LociForm(FormatReader reader)
          Constructs a new LociForm that handles the given reader.
LociForm(FormatReader reader, FormatWriter writer)
          Constructs a new LociForm that handles the given reader/writer pair.
LociForm(FormatWriter writer)
          Constructs a new LociForm that handles the given writer.
 
Method Summary
 void add(String id, Data data, boolean replace)
          Adds data to an existing image file.
 void close()
          Closes any open files.
 int getBlockCount(String id)
          Determines the number of images in the given image file.
 String[] getDefaultSuffixes()
          Returns the default file suffixes for this file format.
 FormNode getForms(Data data)
          Returns the data forms that are compatible with a data object.
 Hashtable getMetadata(String id)
          Obtains the hashtable containing the metadata field/value pairs from the given image file.
 Object getMetadataValue(String id, String field)
          Obtains the specified metadata field's value for the given file.
 Object getOMENode(String id)
          Obtains a loci.ome.xml.OMENode object representing the file's metadata as an OME-XML DOM structure.
 double getPercentComplete()
          Gets the percentage complete of the form's current operation.
 FormatReader getReader()
          Gets the FormatReader backing this form's reading capabilities.
 FormatWriter getWriter()
          Gets the FormatWriter backing this form's writing capabilities.
 boolean isThisType(byte[] block)
          Checks if the given block is a valid header for an image file.
 boolean isThisType(String name)
          Checks if the given string is a valid filename for an image file.
static void main(String[] args)
           
 DataImpl open(String id)
          Opens an existing image file from the given filename.
 DataImpl open(String id, int block_number)
          Obtains the specified image from the given image file.
 DataImpl open(URL url)
          Opens an existing image file from the given URL.
 void save(String id, Data data, boolean replace)
          Saves a VisAD Data object at the given location.
 void setFrameRate(int fps)
          Sets the frames per second to use when writing files.
 void testRead(String[] args)
          A utility method for test reading a file from the command line, and displaying the results in a simple display.
 
Methods inherited from class visad.data.Form
getMathType
 
Methods inherited from class visad.data.FormNode
getName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

reader

protected FormatReader reader
Reader to use for open-related functions.


writer

protected FormatWriter writer
Writer to use for save-related functions.


percent

protected double percent
Percent complete for current operation.

Constructor Detail

LociForm

public LociForm()
Constructs a new LociForm that handles anything from loci.formats.


LociForm

public LociForm(FormatReader reader)
Constructs a new LociForm that handles the given reader.


LociForm

public LociForm(FormatWriter writer)
Constructs a new LociForm that handles the given writer.


LociForm

public LociForm(FormatReader reader,
                FormatWriter writer)
Constructs a new LociForm that handles the given reader/writer pair.

Method Detail

getReader

public FormatReader getReader()
Gets the FormatReader backing this form's reading capabilities.


getWriter

public FormatWriter getWriter()
Gets the FormatWriter backing this form's writing capabilities.


setFrameRate

public void setFrameRate(int fps)
Sets the frames per second to use when writing files.


testRead

public void testRead(String[] args)
              throws VisADException,
                     IOException
A utility method for test reading a file from the command line, and displaying the results in a simple display.

Throws:
VisADException
IOException

open

public DataImpl open(String id)
              throws BadFormException,
                     IOException,
                     VisADException
Opens an existing image file from the given filename.

Specified by:
open in class FormNode
Returns:
VisAD Data object containing image data
Throws:
BadFormException
IOException
VisADException

save

public void save(String id,
                 Data data,
                 boolean replace)
          throws BadFormException,
                 IOException,
                 RemoteException,
                 VisADException
Saves a VisAD Data object at the given location.

Specified by:
save in class FormNode
Throws:
BadFormException
IOException
RemoteException
VisADException

add

public void add(String id,
                Data data,
                boolean replace)
         throws BadFormException
Adds data to an existing image file.

Specified by:
add in class FormNode
Throws:
BadFormException - Always thrown (this method not implemented).

open

public DataImpl open(URL url)
              throws BadFormException,
                     IOException,
                     VisADException
Opens an existing image file from the given URL.

Specified by:
open in class FormNode
Returns:
VisAD data object containing image data
Throws:
UnimplementedException - Always thrown (this method not implemented).
BadFormException
IOException
VisADException

getForms

public FormNode getForms(Data data)
Returns the data forms that are compatible with a data object.

Specified by:
getForms in class FormNode

open

public DataImpl open(String id,
                     int block_number)
              throws BadFormException,
                     IOException,
                     VisADException
Obtains the specified image from the given image file.

Specified by:
open in interface FormBlockReader
Parameters:
id - The file from which to load data blocks.
block_number - The block number of the block to load.
Throws:
VisADException - If the block number is invalid.
BadFormException
IOException

getBlockCount

public int getBlockCount(String id)
                  throws BadFormException,
                         IOException,
                         VisADException
Determines the number of images in the given image file.

Specified by:
getBlockCount in interface FormBlockReader
Parameters:
id - The file for which to get a block count.
Throws:
BadFormException
IOException
VisADException

close

public void close()
           throws BadFormException,
                  IOException,
                  VisADException
Closes any open files.

Specified by:
close in interface FormBlockReader
Throws:
BadFormException
IOException
VisADException

isThisType

public boolean isThisType(String name)
Checks if the given string is a valid filename for an image file.

Specified by:
isThisType in interface FormFileInformer
Parameters:
name - name of the file
Returns:
true if the name is right for this type of form

isThisType

public boolean isThisType(byte[] block)
Checks if the given block is a valid header for an image file.

Specified by:
isThisType in interface FormFileInformer
Parameters:
block - block of bytes from file
Returns:
true if the magic number is right

getDefaultSuffixes

public String[] getDefaultSuffixes()
Returns the default file suffixes for this file format.

Specified by:
getDefaultSuffixes in interface FormFileInformer
Returns:
array of suffixes

getPercentComplete

public double getPercentComplete()
Gets the percentage complete of the form's current operation.

Specified by:
getPercentComplete in interface FormProgressInformer
Returns:
The percentage complete (0.0 - 100.0), or Double.NaN if no operation is currently taking place.

getMetadataValue

public Object getMetadataValue(String id,
                               String field)
                        throws BadFormException,
                               IOException,
                               VisADException
Obtains the specified metadata field's value for the given file.

Specified by:
getMetadataValue in interface MetadataReader
Parameters:
field - the name associated with the metadata field
Returns:
the value, or null if the field doesn't exist
Throws:
BadFormException
IOException
VisADException

getMetadata

public Hashtable getMetadata(String id)
                      throws BadFormException,
                             IOException,
                             VisADException
Obtains the hashtable containing the metadata field/value pairs from the given image file.

Specified by:
getMetadata in interface MetadataReader
Parameters:
id - the filename
Returns:
the hashtable containing all metadata from the file
Throws:
BadFormException
IOException
VisADException

getOMENode

public Object getOMENode(String id)
                  throws BadFormException,
                         IOException,
                         VisADException
Obtains a loci.ome.xml.OMENode object representing the file's metadata as an OME-XML DOM structure.

Specified by:
getOMENode in interface OMEReader
Throws:
BadFormException - if the loci.ome.xml package is not present
IOException
VisADException

main

public static void main(String[] args)
                 throws Exception
Throws:
Exception