- All Implemented Interfaces:
- CompoundDataFormat,- DataFormat,- MetaDataContainer,- Serializable
- Direct Known Subclasses:
- H4Vdata,- H5CompoundDS
A compound datatype is an aggregation of one or more datatypes. Each member of a compound type has a name which is unique within that type, and a datatype of that member in a compound datum. Compound datatypes can be nested, i.e. members of a compound datatype can be some other compound datatype.
For more details on compound datatypes, see HDF5 User's Guide
Since Java cannot handle C-structured compound data, data in a compound dataset is loaded in to an Java List. Each element of the list is a data array that corresponds to a compound field. The data is read/written by compound field.
For example, if compound dataset "comp" has the following nested structure, and member datatypes
comp --> m01 (int) comp --> m02 (float) comp --> nest1 --> m11 (char) comp --> nest1 --> m12 (String) comp --> nest1 --> nest2 --> m21 (long) comp --> nest1 --> nest2 --> m22 (double)The data object is a Java list of six arrays: {int[], float[], char[], Stirng[], long[] and double[]}.
- Version:
- 1.1 9/4/2007
- Author:
- Peter X. Cao
- See Also:
- Serialized Form
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected boolean[]The array to store flags to indicate if a member of this compound dataset is selected for read/write.protected Object[]The dimension sizes of each member.protected String[]The names of members of the compound dataset.protected int[]Returns array containing the total number of elements of the members of this compound dataset.protected Datatype[]The datatypes of compound members.protected intThe number of members of the compound dataset.static StringA single character to separate the names of nested compound fields.Fields inherited from class hdf.object.DatasetchunkSize, compression, COMPRESSION_GZIP_TXT, convertByteToString, convertedBuf, data, datatype, dimNames, dims, filters, inited, isDataLoaded, maxDims, nPoints, originalBuf, rank, selectedDims, selectedIndex, selectedStride, startDims, storage, storageLayoutFields inherited from class hdf.object.HObjectfileFormat, linkTargetObjName, oid
- 
Constructor SummaryConstructorsConstructorDescriptionCompoundDS(FileFormat theFile, String dsName, String dsPath)Constructs a CompoundDS object with the given file, dataset name and path.CompoundDS(FileFormat theFile, String dsName, String dsPath, long[] oid)Deprecated.
- 
Method SummaryModifier and TypeMethodDescriptionDeprecated.Not implemented for compound dataset.intReturns the number of members of the compound dataset.int[]getMemberDims(int i)Returns the dimension sizes of the i-th member.String[]Returns the names of the members of the compound dataset.int[]Returns array containing the total number of elements of the members of the compound dataset.Datatype[]Returns an array of datatype objects of compound members.intReturns the number of selected members of the compound dataset.String[]Returns an array of the names of the selected members of the compound dataset.int[]Returns array containing the total number of elements of the selected members of the compound dataset.Datatype[]Returns an array of datatype objects of selected compound members.booleanisMemberSelected(int idx)Checks if a member of the compound dataset is selected for read/write.voidselectMember(int idx)Selects the i-th member for read/write.voidsetAllMemberSelection(boolean selectAll)Selects/deselects all members.Methods inherited from class hdf.object.DatasetbyteToString, clear, clearData, convertFromUnsignedC, convertFromUnsignedC, convertToUnsignedC, convertToUnsignedC, getChunkSize, getCompression, getConvertByteToString, getData, getDatatype, getDimNames, getDims, getFilters, getHeight, getMaxDims, getOriginalClass, getRank, getSelectedDims, getSelectedIndex, getSize, getStartDims, getStorage, getStorageLayout, getStride, getVirtualFilename, getVirtualMaps, getWidth, isInited, isString, isVirtual, readBytes, setConvertByteToString, setData, stringToByte, writeMethods inherited from class hdf.object.HObjectclose, createFullname, debug, equals, equals, equalsOID, getFID, getFile, getFileFormat, getFullName, getLinkTargetObjName, getName, getOID, getPath, hashCode, open, setFullname, setLinkTargetObjName, setName, setPath, toStringMethods inherited from class java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface hdf.object.DataFormatclearData, convertFromUnsignedC, convertToUnsignedC, getCompression, getData, getDatatype, getDims, getFillValue, getHeight, getOriginalClass, getRank, getSelectedDims, getSelectedIndex, getStartDims, getStride, getWidth, init, isInited, read, setData, write, writeMethods inherited from interface hdf.object.MetaDataContainergetMetadata, hasAttribute, removeMetadata, updateMetadata, writeMetadata
- 
Field Details- 
SEPARATORA single character to separate the names of nested compound fields. An extended ASCII character, 0x95, is used to avoid common characters in compound names.- See Also:
- Constant Field Values
 
- 
numberOfMembersThe number of members of the compound dataset.
- 
memberNamesThe names of members of the compound dataset.
- 
memberOrdersReturns array containing the total number of elements of the members of this compound dataset.For example, a compound dataset COMP has members of A, B and C as COMP { int A; float B[5]; double C[2][3]; }memberOrders is an integer array of {1, 5, 6} to indicate that member A has one element, member B has 5 elements, and member C has 6 elements.
- 
memberDimsThe dimension sizes of each member.The i-th element of the Object[] is an integer array (int[]) that contains the dimension sizes of the i-th member. 
- 
memberTypesThe datatypes of compound members.
- 
isMemberSelectedThe array to store flags to indicate if a member of this compound dataset is selected for read/write.If a member is selected, the read/write will perform on the member. Applications such as HDFView will only display the selected members of the compound dataset. For example, if a compound dataset has four members String[] memberNames = {"X", "Y", "Z", "TIME"}; and boolean[] isMemberSelected = {true, false, false, true}; members "X" and "TIME" are selected for read and write.
 
- 
- 
Constructor Details- 
CompoundDSConstructs a CompoundDS object with the given file, dataset name and path.The dataset object represents an existing dataset in the file. For example, new H5CompoundDS(file, "dset1", "/g0/") constructs a dataset object that corresponds to the dataset, "dset1", at group "/g0/". This object is usually constructed at FileFormat.open(), which loads the file structure and object information into memory. It is rarely used elsewhere. - Parameters:
- theFile- the file that contains the dataset.
- dsName- the name of the CompoundDS, e.g. "compDS".
- dsPath- the full path of the CompoundDS, e.g. "/g1".
 
- 
CompoundDSDeprecated.Not for public use in the future.
 UsingCompoundDS(FileFormat, String, String)- Parameters:
- theFile- the file that contains the dataset.
- dsName- the name of the CompoundDS, e.g. "compDS".
- dsPath- the full path of the CompoundDS, e.g. "/g1".
- oid- the oid of the CompoundDS.
 
 
- 
- 
Method Details- 
getMemberCountReturns the number of members of the compound dataset.- Specified by:
- getMemberCountin interface- CompoundDataFormat
- Returns:
- the number of members of the compound dataset.
 
- 
getSelectedMemberCountReturns the number of selected members of the compound dataset. Selected members are the compound fields which are selected for read/write.For example, in a compound datatype of {int A, float B, char[] C}, users can choose to retrieve only {A, C} from the dataset. In this case, getSelectedMemberCount() returns two. - Specified by:
- getSelectedMemberCountin interface- CompoundDataFormat
- Returns:
- the number of selected members.
 
- 
getMemberNamesReturns the names of the members of the compound dataset. The names of compound members are stored in an array of Strings.For example, for a compound datatype of {int A, float B, char[] C} getMemberNames() returns ["A", "B", "C"}. - Specified by:
- getMemberNamesin interface- CompoundDataFormat
- Returns:
- the names of compound members.
 
- 
getSelectedMemberNamesReturns an array of the names of the selected members of the compound dataset.- Specified by:
- getSelectedMemberNamesin interface- CompoundDataFormat
- Returns:
- an array of the names of the selected members of the compound dataset.
 
- 
isMemberSelectedChecks if a member of the compound dataset is selected for read/write.- Specified by:
- isMemberSelectedin interface- CompoundDataFormat
- Parameters:
- idx- the index of compound member.
- Returns:
- true if the i-th memeber is selected; otherwise returns false.
 
- 
selectMemberSelects the i-th member for read/write.- Specified by:
- selectMemberin interface- CompoundDataFormat
- Parameters:
- idx- the index of compound member.
 
- 
setAllMemberSelectionSelects/deselects all members.- Specified by:
- setAllMemberSelectionin interface- CompoundDataFormat
- Parameters:
- selectAll- The indicator to select or deselect all members. If true, all members are selected for read/write. If false, no member is selected for read/write.
 
- 
getMemberOrdersReturns array containing the total number of elements of the members of the compound dataset.For example, a compound dataset COMP has members of A, B and C as COMP { int A; float B[5]; double C[2][3]; }getMemberOrders() will return an integer array of {1, 5, 6} to indicate that member A has one element, member B has 5 elements, and member C has 6 elements.- Specified by:
- getMemberOrdersin interface- CompoundDataFormat
- Returns:
- the array containing the total number of elements of the members of compound.
 
- 
getSelectedMemberOrdersReturns array containing the total number of elements of the selected members of the compound dataset.For example, a compound dataset COMP has members of A, B and C as COMP { int A; float B[5]; double C[2][3]; }If A and B are selected, getSelectedMemberOrders() returns an array of {1, 5}- Specified by:
- getSelectedMemberOrdersin interface- CompoundDataFormat
- Returns:
- array containing the total number of elements of the selected members of compound.
 
- 
getMemberDimsReturns the dimension sizes of the i-th member.For example, a compound dataset COMP has members of A, B and C as COMP { int A; float B[5]; double C[2][3]; }getMemberDims(2) returns an array of {2, 3}, while getMemberDims(1) returns an array of {5}, and getMemberDims(0) returns null.- Specified by:
- getMemberDimsin interface- CompoundDataFormat
- Parameters:
- i- the i-th member
- Returns:
- the dimension sizes of the i-th member, null if the compound member is not an array.
 
- 
getMemberTypesReturns an array of datatype objects of compound members.Each member of a compound dataset has its own datatype. The datatype of a member can be atomic or other compound datatype (nested compound). Sub-classes set up the datatype objects at init(). - Specified by:
- getMemberTypesin interface- CompoundDataFormat
- Returns:
- the array of datatype objects of the compound members.
 
- 
getSelectedMemberTypesReturns an array of datatype objects of selected compound members.- Specified by:
- getSelectedMemberTypesin interface- CompoundDataFormat
- Returns:
- an array of datatype objects of selected compound members.
 
- 
copy@Deprecated public Dataset copy(Group pgroup, String name, long[] dims, Object data) throws ExceptionDeprecated.Not implemented for compound dataset.Description copied from class:DatasetCreates a new dataset and writes the data buffer to the new dataset.This function allows applications to create a new dataset for a given data buffer. For example, users can select a specific interesting part from a large image and create a new image with the selection. The new dataset retains the datatype and dataset creation properties of this dataset. - Specified by:
- copyin class- Dataset
- Parameters:
- pgroup- the group which the dataset is copied to.
- name- the name of the new dataset.
- dims- the dimension sizes of the the new dataset.
- data- the data values of the subset to be copied.
- Returns:
- the new dataset.
- Throws:
- Exception- if dataset can not be copied
 
 
- 
Using
CompoundDS(FileFormat, String, String)