## ncsa.hdf.object.h5
Class H5Group

    java.lang.Object
      ncsa.hdf.object.HObject
          ncsa.hdf.object.Group
              ncsa.hdf.object.h5.H5Group

All Implemented Interfaces:
  java.io.Serializable, DataFormat

    public class H5Group

extends Group

An H5Group object represents an existing HDF5 group in file.

In HDF5, every object has at least one name. An HDF5 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 sub-directories or files.

For more information on HDF5 Groups,

Version:
  1.1 9/4/2007
Author:
  Peter X. Cao
See Also:
  HDF5 User's Guide

  , Serialized Form

Field Summary
`protected java.util.List` `attributeList` The list of attributes of this data object.

Fields inherited from class ncsa.hdf.object.Group
`CRT_ORDER_INDEXED, CRT_ORDER_TRACKED, LINK_TYPE_EXTERNAL, LINK_TYPE_HARD, LINK_TYPE_SOFT, nMembersInFile, parent`

Fields inherited from class ncsa.hdf.object.HObject
`linkTargetObjName, oid, separator`

Constructor Summary
`H5Group(FileFormat theFile, java.lang.String name, java.lang.String path, Group parent)` Constructs an HDF5 group with specific name, path, and parent.
`H5Group(FileFormat theFile, java.lang.String name, java.lang.String path, Group parent, long[] oid)` Deprecated. Not for public use in the future. Using `H5Group(FileFormat, String, String, Group)`

Method Summary
`void` `clear()` Clears up member list and other resources in memory for the group.
`void` `close(int gid)` Closes access to the object.
`static H5Group` `create(java.lang.String name, Group pgroup, int... gplist)` Creates a new group with a name in a group and with the group creation properties specified in gplist.
`java.util.List` `getMetadata()` Retrieves the metadata such as attributes from file.
`java.util.List` `getMetadata(int... attrPropList)`
`int` `getNumberOfMembersInFile()` Returns the total number of members of this group in file.
`boolean` `hasAttribute()` Check if the object has any attributes attached.
`int` `open()` Opens an existing object such as dataset or group for access.
`void` `removeMetadata(java.lang.Object info)` Deletes an existing metadata from this data object.
`void` `setName(java.lang.String newName)` Sets the name of the group.
`void` `setPath(java.lang.String newPath)` Sets the path of the object.
`void` `writeMetadata(java.lang.Object info)` Writes a specific metadata (such as attribute) into file.

Methods inherited from class ncsa.hdf.object.Group
`addToMemberList, getMemberList, getParent, isRoot, removeFromMemberList`

Methods inherited from class ncsa.hdf.object.HObject
`debug, equalsOID, getFID, getFile, getFileFormat, getFullName, getLinkTargetObjName, getName, getOID, getPath, setLinkTargetObjName, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### attributeList

    protected java.util.List attributeList

  The list of attributes of this data object. Members of the list are instance of Attribute.

Constructor Detail

### H5Group

    public H5Group(FileFormat theFile,
                   java.lang.String name,
                   java.lang.String path,
                   Group parent)

  Constructs an HDF5 group with specific name, path, and parent.

  Parameters:
    `theFile` - the file which containing the group.
    `name` - the name of this group, e.g. "grp01".
    `path` - the full path of this group, e.g. "/groups/".
    `parent` - the parent of this group.

### H5Group

    @Deprecated
    public H5Group(FileFormat theFile,
                              java.lang.String name,
                              java.lang.String path,
                              Group parent,
                              long[] oid)

  Deprecated. Not for public use in the future.
  Using `H5Group(FileFormat, String, String, Group)`

Method Detail

### hasAttribute

    public boolean hasAttribute()

  Description copied from interface: `DataFormat`
  Check if the object has any attributes attached.

  Returns:
    true if it has any attribute(s), false otherwise.

### getNumberOfMembersInFile

    public int getNumberOfMembersInFile()

  Description copied from class: `Group`
  Returns the total number of members of this group in file. Current Java application such as HDFView cannot handle files with large numbers of objects (1,000,000 or more objects) due to JVM memory limitation. The max_members is used so that applications such as HDFView will load up to max_members number of objects. If the number of objects in file is larger than max_members, only max_members are loaded in memory.

  getNumberOfMembersInFile() returns the number of objects in this group. The number of objects in memory is obtained by getMemberList().size().

  Overrides:
    `getNumberOfMembersInFile` in class `Group`
  Returns:
    Total number of members of this group in the file.

### clear

    public void clear()

  Description copied from class: `Group`
  Clears up member list and other resources in memory for the group. Since the destructor will clear memory space, the function is usually not needed.

  Overrides:
    `clear` in class `Group`

### getMetadata

    public java.util.List getMetadata()
                               throws HDF5Exception

  Description copied from interface: `DataFormat`
  Retrieves the metadata such as attributes from file.

  Metadata such as attributes are stored in a List.

  Returns:
    the list of metadata objects.
  Throws:
    `HDF5Exception`

### getMetadata

    public java.util.List getMetadata(int... attrPropList)
                               throws HDF5Exception

  Throws:
    `HDF5Exception`

### writeMetadata

    public void writeMetadata(java.lang.Object info)
                       throws java.lang.Exception

  Description copied from interface: `DataFormat`
  Writes a specific metadata (such as attribute) into file.

  If an HDF(4&5) attribute exists in file, the method updates its value. If the attribute does not exists in file, it creates the attribute in file and attaches it to the object. It will fail to write a new attribute to the object where an attribute with the same name already exists. To update the value of an existing attribute in file, one needs to get the instance of the attribute by getMetadata(), change its values, and use writeMetadata() to write the value.

  Parameters:
    `info` - the metadata to write.
  Throws:
    `java.lang.Exception`

### removeMetadata

    public void removeMetadata(java.lang.Object info)
                        throws HDF5Exception

  Description copied from interface: `DataFormat`
  Deletes an existing metadata from this data object.

  Parameters:
    `info` - the metadata to delete.
  Throws:
    `HDF5Exception`

### open

    public int open()

  Description copied from class: `HObject`
  Opens an existing object such as dataset or group for access. The return value is an object identifier obtained by implementing classes such as H5.H5Dopen(). This function is needed to allow other objects to be able to access the object. For instance, H5File class uses the open() function to obtain object identifier for copyAttributes(int src_id, int dst_id) and other purposes. The open() function should be used in pair with close(int) function.

  Specified by:
    `open` in class `HObject`
  Returns:
    the object identifier if successful; otherwise returns a negative value.
  See Also:
    `HObject.close(int)`

### close

    public void close(int gid)

  Description copied from class: `HObject`
  Closes access to the object.

  Sub-classes must implement this interface because different data objects have their own ways of how the data resources are closed.

  For example, H5Group.close() calls the ncsa.hdf.hdf5lib.H5.H5Gclose() method and closes the group resource specified by the group id.

  Specified by:
    `close` in class `HObject`
  Parameters:
    `gid` - The object identifier.

### create

    public static H5Group create(java.lang.String name,
                                 Group pgroup,
                                 int... gplist)
                          throws java.lang.Exception

  Creates a new group with a name in a group and with the group creation properties specified in gplist.

  The gplist contains a sequence of group creation property list identifiers, lcpl, gcpl, gapl. It allows the user to create a group with group creation properties.

  Parameters:
    `name` - The name of a new group.
    `pgroup` - The parent group object.
    `gplist` - The group creation properties, in which the order of the properties conforms the HDF5 library API, H5Gcreate(), i.e. lcpl, gcpl and gapl, where
    - lcpl : Property list for link creation
    - gcpl : Property list for group creation
    - gapl : Property list for group access
  Returns:
    The new group if successful; otherwise returns null.
  Throws:
    `java.lang.Exception`
  See Also:
    `for the order of property list identifiers.`

### setName

    public void setName(java.lang.String newName)
                 throws java.lang.Exception

  Description copied from class: `Group`
  Sets the name of the group.

  setName (String newName) changes the name of the group in memory and file.

  setName() updates the path in memory for all the objects that are under the group with the new name.

  Overrides:
    `setName` in class `Group`
  Parameters:
    `newName` - The new name of the group.
  Throws:
    `java.lang.Exception`

### setPath

    public void setPath(java.lang.String newPath)
                 throws java.lang.Exception

  Description copied from class: `HObject`
  Sets the path of the object.

  setPath() is needed to change the path for an object when the name of a group conatining the object is changed by setName(). The path of the object in memory under this group should be updated to the new path to the group. Unlike setName(), setPath() does not change anything in file.

  Overrides:
    `setPath` in class `HObject`
  Parameters:
    `newPath` - The new path of the object.
  Throws:
    `java.lang.Exception`