## visad.data.bio
Class LociForm

    java.lang.Object
      visad.data.FormNode
          visad.data.Form
              visad.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`