ncsa.hdf.object.h4

## Class H4Group

- java.lang.Object
- - ncsa.hdf.object.HObject
  - - ncsa.hdf.object.Group
    - - ncsa.hdf.object.h4.H4Group

All Implemented Interfaces:
  java.io.Serializable, DataFormat

    public class H4Group
    extends Group

An H4Group is a vgroup in HDF4, inheriting from Group. A vgroup is a structure designed to associate related data objects. The general structure of a vgroup is similar to that of the UNIX file system in that the vgroup may contain references to other vgroups or HDF 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 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

Constructors
Constructor and Description
`H4Group(FileFormat theFile, java.lang.String name, java.lang.String path, Group parent)`
`H4Group(FileFormat theFile, java.lang.String name, java.lang.String path, Group parent, long[] oid)` Creates a group object with specific name, path, and parent.

### Method Summary

Methods
`void` `close(int vgid)` close group access.
`static H4Group` `create(java.lang.String name, Group pgroup)` Creates a new group.
`java.util.List` `getMetadata()` Retrieves the metadata such as attributes from file.
`java.util.List` `getMetadata(int... attrPropList)`
`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` `writeMetadata(java.lang.Object info)` Writes a specific metadata (such as attribute) into file.

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

`addToMemberList, clear, getMemberList, getNumberOfMembersInFile, getParent, isRoot, removeFromMemberList, setName`

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

`debug, equalsOID, getFID, getFile, getFileFormat, getFullName, getLinkTargetObjName, getName, getOID, getPath, setLinkTargetObjName, setPath, toString`

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

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

### Constructor Detail

#### H4Group

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

#### H4Group

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

Creates a group object with specific name, path, and parent.

Parameters:
  `theFile` - the HDF file.
  `name` - the name of this group.
  `path` - the full path of this group.
  `parent` - the parent of this group.
  `oid` - the unique identifier of this data object.

### 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.

#### getMetadata

    public java.util.List getMetadata()
                               throws HDFException

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:
  `HDFException`

#### 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 HDFException

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

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

#### 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 vgid)

close group access.

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

#### create

    public static H4Group create(java.lang.String name,
                 Group pgroup)
                          throws java.lang.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:
  `java.lang.Exception`

#### getMetadata

    public java.util.List getMetadata(int... attrPropList)
                               throws java.lang.Exception

Throws:
  `java.lang.Exception`