Module org.hdfgroup.object
Package hdf.object.nc2

# Class NC2Group

Object
hdf.object.HObject
hdf.object.Group
hdf.object.nc2.NC2Group

All Implemented Interfaces:
  `MetaDataContainer`, `Serializable`

public class NC2Group extends Group
An NC2Group represents NetCDF3 group, inheriting from Group. Every NetCDF3 object has at least one name. An NetCDF3 group is used to store a set of the names together in one place, i.e. a group. The general structure of a group is similar to that of the UNIX file system in that the group may contain references to other groups or data objects just as the UNIX directory may contain subdirectories or files.

Version:
  1.1 9/4/2007
Author:
  Peter X. Cao
See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected ucar.nc2.Group`
  `netCDFGroup`
  The corresponding netcdf Group for this group.

  ### Fields inherited from class hdf.object.Group

  `CRT_ORDER_INDEXED, CRT_ORDER_TRACKED, LINK_TYPE_EXTERNAL, LINK_TYPE_HARD, LINK_TYPE_SOFT, nMembersInFile, parent`

  ### Fields inherited from class hdf.object.HObject

  `fileFormat, linkTargetObjName, oid, SEPARATOR`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `NC2Group(FileFormat fileFormat, String name, String path, Group parent, long[] theID)`
  Constructs an NC2 group with specific name, path, and parent.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close(long gid)`
  Close a group.
  `static NC2Group`
  `create(String name, Group pgroup)`
  Creates a new group.
  `List`
  `getMetadata()`
  Retrieves the object's metadata, such as attributes, from the file.
  `List`
  `getMetadata(int... attrPropList)`
  Retrieves the object's metadata, such as attributes, from the file.
  `ucar.nc2.Group`
  `getNetCDFGroup()`
  `boolean`
  `hasAttribute()`
  Check if the object has any attributes attached.
  `boolean`
  `hasDimension()`
  `String`
  `netcdfAttributeString(int index)`
  Retrieves the attribute name.
  `String`
  `netcdfDimensionString(int index)`
  Retrieves the Dimension name.
  `String`
  `netcdfTypedefString(int index)`
  Retrieves the EnumTypedef name.
  `long`
  `open()`
  open a group.
  `void`
  `removeMetadata(Object info)`
  Deletes an attribute from this dataset.
  `void`
  `setNetCDFGroup(ucar.nc2.Group netCDFGroup)`
  Set the corresponding netcdf Group for this group.
  `void`
  `updateMetadata(Object info)`
  Updates an attribute from this dataset.
  `void`
  `writeMetadata(Object info)`
  Creates a new attribute and attached to this dataset if attribute does not exist.

  ### Methods inherited from class hdf.object.Group

  `addToMemberList, breadthFirstMemberList, clear, depthFirstMemberList, getMember, getMemberList, getNumberOfMembersInFile, getParent, isRoot, removeFromMemberList, setName`

  ### Methods inherited from class hdf.object.HObject

  `createFullname, debug, equals, equals, equalsOID, getFID, getFile, getFileFormat, getFullName, getLinkTargetObjName, getName, getOID, getPath, hashCode, setFullname, setLinkTargetObjName, setPath, toString`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### netCDFGroup

    protected ucar.nc2.Group netCDFGroup
    The corresponding netcdf Group for this group.

- ## Constructor Details

  - ### NC2Group

    public NC2Group(FileFormat fileFormat, String name, String path, Group parent, long[] theID)
    Constructs an NC2 group with specific name, path, and parent.
    Parameters:
      `fileFormat` - the file which containing the group.
      `name` - the name of this group.
      `path` - the full path of this group.
      `parent` - the parent of this group.
      `theID` - the unique identifier of this data object.

- ## Method Details

  - ### getNetCDFGroup

    public ucar.nc2.Group getNetCDFGroup()
    Returns:
      the corresponding netcdf Group for this group.

  - ### setNetCDFGroup

    public void setNetCDFGroup(ucar.nc2.Group netCDFGroup)
    Set the corresponding netcdf Group for this group.
    Parameters:
      `netCDFGroup` - the ucar.nc2.Group to associate to this group

  - ### hasAttribute

    public boolean hasAttribute()
    Check if the object has any attributes attached.
    Returns:
      true if it has any attributes, false otherwise.

  - ### hasDimension

    public boolean hasDimension()
    Returns:
      true if this group has an attached dimension.

  - ### getMetadata

    public List getMetadata() throws Exception
    Retrieves the object's metadata, such as attributes, from the file. Metadata, such as attributes, is stored in a List.
    Returns:
      the list of metadata objects.
    Throws:
      `Exception` - if the metadata can not be retrieved

  - ### writeMetadata

    public void writeMetadata(Object info) throws Exception
    Creates a new attribute and attached to this dataset if attribute does not exist. Otherwise, just update the value of the attribute.
    Parameters:
      `info` - the attribute to attach
    Throws:
      `Exception` - if there is an error

  - ### removeMetadata

    public void removeMetadata(Object info) throws Exception
    Deletes an attribute from this dataset.
    Parameters:
      `info` - the attribute to delete.
    Throws:
      `Exception` - if there is an error

  - ### updateMetadata

    public void updateMetadata(Object info) throws Exception
    Updates an attribute from this dataset.
    Parameters:
      `info` - the attribute to update.
    Throws:
      `Exception` - if there is an error

  - ### open

    public long open()
    open a group.
    Specified by:
      `open` in class `HObject`
    Returns:
      the group identifier if successful.
    See Also:
      - `HObject.close(long)`

  - ### close

    public void close(long gid)
    Close a group.
    Specified by:
      `close` in class `HObject`
    Parameters:
      `gid` - the identifier of the group to close.

  - ### create

    public static NC2Group create(String name, Group pgroup) throws Exception
    Creates a new group.
    Parameters:
      `name` - the name of the group to create.
      `pgroup` - the parent group of the new group.
    Returns:
      the new group if successful. Otherwise returns null.
    Throws:
      `Exception` - if there is an error

  - ### getMetadata

    public List getMetadata(int... attrPropList) throws Exception
    Retrieves the object's metadata, such as attributes, from the file. Metadata, such as attributes, is stored in a List.
    Parameters:
      `attrPropList` - the list of properties to get
    Returns:
      the list of metadata objects.
    Throws:
      `Exception` - if the metadata can not be retrieved

  - ### netcdfAttributeString

    public String netcdfAttributeString(int index)
    Retrieves the attribute name.
    Parameters:
      `index` - the index of the attribute to get
    Returns:
      the attribute string.

  - ### netcdfDimensionString

    public String netcdfDimensionString(int index)
    Retrieves the Dimension name.
    Parameters:
      `index` - the index of the Dimension to get
    Returns:
      the Dimension string.

  - ### netcdfTypedefString

    public String netcdfTypedefString(int index)
    Retrieves the EnumTypedef name.
    Parameters:
      `index` - the index of the EnumTypedef to get
    Returns:
      the EnumTypedef string.