|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectncsa.hdf.object.HObject
ncsa.hdf.object.Datatype
ncsa.hdf.object.h5.H5Datatype
public class H5Datatype
This class defines HDF5 data type characteristics and APIs for a data type.
This class provides several methods to convert an HDF5 dataype identifier to a dataype object, and vice versa. A dataype object is described by four basic fields: datatype class, size, byte order, and sign, while an HDF5 dataype is presented by a datetype identifier.
Field Summary | |
---|---|
static long |
serialVersionUID
|
Fields inherited from class ncsa.hdf.object.Datatype |
---|
CLASS_ARRAY, CLASS_BITFIELD, CLASS_CHAR, CLASS_COMPOUND, CLASS_ENUM, CLASS_FLOAT, CLASS_INTEGER, CLASS_NO_CLASS, CLASS_OPAQUE, CLASS_REFERENCE, CLASS_STRING, CLASS_VLEN, NATIVE, NSGN, ORDER_BE, ORDER_LE, ORDER_NONE, ORDER_VAX, SIGN_2, SIGN_NONE |
Fields inherited from class ncsa.hdf.object.HObject |
---|
separator |
Constructor Summary | |
---|---|
H5Datatype(FileFormat theFile,
java.lang.String name,
java.lang.String path)
Constructs an named HDF5 data type object for a given file, dataset name and group path. |
|
H5Datatype(FileFormat theFile,
java.lang.String name,
java.lang.String path,
long[] oid)
Deprecated. Not for public use in the future. Using H5Datatype(FileFormat, String, String) |
|
H5Datatype(int nativeID)
Constructs a Datatype with a given native datatype identifier. |
|
H5Datatype(int tclass,
int tsize,
int torder,
int tsign)
Constructs a Datatype with specified class, size, byte order and sign. |
Method Summary | |
---|---|
static java.lang.Object |
allocateArray(int tid,
int size)
Allocates an one-dimensional array of byte, short, int, long, float, double, or String to store data in memory. |
void |
close(int tid)
Closes a datatype identifier. |
static int[] |
convertEnumNameToValue(int tid,
java.lang.String[] in,
int[] out)
Converts namess in an Enumeration Datatype to values. |
static java.lang.String[] |
convertEnumValueToName(int tid,
java.lang.Object inValues,
java.lang.String[] outNames)
Converts values in an Enumeration Datatype to names. |
void |
fromNative(int tid)
Set datatype characteristics (class, size, byte order and sign) from a given datatye identifier. |
java.lang.String |
getDatatypeDescription()
Returns a short text description of this datatype. |
static java.lang.String |
getDatatypeDescription(int tid)
Returns a short description of a given datatype ID. |
static int |
getDatatypeSize(int tid)
Returns the size (in bytes) of a given datatype identifier. |
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. |
boolean |
isUnsigned()
Checks if this datatype is an unsigned integer. |
static boolean |
isUnsigned(int datatype)
Checks if a datatype specified by the identifier is an unsigned integer. |
int |
open()
Opens access to a named datatype. |
void |
removeMetadata(java.lang.Object info)
Deletes an existing metadata from this data object. |
int |
toNative()
Converts the datatype object to a native datatype. |
static int |
toNative(int tid)
Deprecated. Not for public use in the future. Using H5.H5Tget_native_type(int)
Return the HDF5 memory datatype identifier based on the HDF5 datatype identifier on disk |
void |
writeMetadata(java.lang.Object info)
Writes a specific metadata (such as attribute) into file. |
Methods inherited from class ncsa.hdf.object.Datatype |
---|
getBasetype, getDatatypeClass, getDatatypeOrder, getDatatypeSign, getDatatypeSize, getEnumMembers, setEnumMembers |
Methods inherited from class ncsa.hdf.object.HObject |
---|
equalsOID, getFID, getFile, getFileFormat, getFullName, getLinkTargetObjName, getName, getOID, getPath, setLinkTargetObjName, setName, setPath, toString |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final long serialVersionUID
HObject.serialVersionUID
,
Constant Field ValuesConstructor Detail |
---|
public H5Datatype(FileFormat theFile, java.lang.String name, java.lang.String path)
The datatype object represents an existing named datatype in file. For example, new H5Datatype(file, "dtype1", "/g0") constructs a datatype object that corresponds to the dataset,"dset1", at group "/g0".
theFile
- the file that contains the dataset.name
- the name of the dataset such as "dset1".path
- the group path to the dataset such as "/g0/".@Deprecated public H5Datatype(FileFormat theFile, java.lang.String name, java.lang.String path, long[] oid)
H5Datatype(FileFormat, String, String)
public H5Datatype(int tclass, int tsize, int torder, int tsign)
The following is a list of a few example of H5Datatype.
tclass
- the class of the datatype, e.g. CLASS_INTEGER, CLASS_FLOAT and
etc.tsize
- the size of the datatype in bytes, e.g. for a 32-bit integer,
the size is 4.torder
- the byte order of the datatype. Valid values are ORDER_LE,
ORDER_BE, ORDER_VAX and ORDER_NONEtsign
- the sign of the datatype. Valid values are SIGN_NONE, SIGN_2
and MSGNpublic H5Datatype(int nativeID)
For example, if the datatype identifier is a 32-bit unsigned integer created from HDF5,
int tid = H5.H5Tcopy(HDF5Constants.H5T_NATIVE_UNINT32); Datatype dtype = new Datatype(tid);will construct a datatype equivalent to new Datatype(CLASS_INTEGER, 4, NATIVE, SIGN_NONE);
nativeID
- the native datatype identifier.fromNative(int nativeID)
Method Detail |
---|
public boolean hasAttribute()
DataFormat
public static final java.lang.String[] convertEnumValueToName(int tid, java.lang.Object inValues, java.lang.String[] outNames) throws HDF5Exception
This method searches the identified enumeration datatype for the values
appearing in inValues
and returns the names corresponding to
those values. If a given value is not found in the enumeration datatype,
the name corresponding to that value will be set to null
in
the string array that is returned.
If the method fails in general, null will be returned instead of a String
array. An empty inValues
parameter, an outNames
array with a different number of entries than the inValues
array, or an invalid tid
would all cause general failure.
tid
- The identifier of the enumeration datatype.inValues
- The array of enumerations values to be converted.outNames
- The array of names to be populated. If null, the array will be
created. If outNames
is not null, the number of
entries must be the same as the number of values in
inValues
.
HDF5Exception
- If there is an error at the HDF5 library level.public static final int[] convertEnumNameToValue(int tid, java.lang.String[] in, int[] out) throws HDF5Exception
This method searches the identified enumeration datatype for the names
appearing in inValues
and returns the values corresponding to
those names.
tid
- The identifier of the enumeration datatype.in
- The array of enumerations names to be converted.out
- The array of values to be populated.
HDF5Exception
- If there is an error at the HDF5 library level.public void fromNative(int tid)
Datatype
Sub-classes must implement it so that this datatype will be converted accordingly.
For example, if the type identifier is a 32-bit unsigned integer created from HDF5,
H5Datatype dtype = new H5Datatype(); dtype.fromNative(HDF5Constants.H5T_NATIVE_UNINT32);Where dtype is equivalent to
fromNative
in class Datatype
tid
- the datatype identifier.@Deprecated public static int toNative(int tid)
H5.H5Tget_native_type(int)
Return the HDF5 memory datatype identifier based on the HDF5 datatype identifier on disk
tid
- the datatype identifieron disk.
public int toNative()
Datatype
For example, a HDF5 datatype created from
H5Dataype dtype = new H5Datatype(CLASS_INTEGER, 4, NATIVE, SIGN_NONE); int tid = dtype.toNative();There "tid" will be the HDF5 datatype id of a 32-bit unsigned integer, which is equivalent to
int tid = H5.H5Tcopy(HDF5Constants.H5T_NATIVE_UNINT32);
toNative
in class Datatype
public static java.lang.Object allocateArray(int tid, int size) throws java.lang.OutOfMemoryError
int tid = H5.H5Tcopy(HDF5Constants.H5T_NATIVE_INT32); int[] data = (int[]) allocateArray(tid, 100);returns a 32-bit integer array of size 100.
tid
- the datatype id.size
- the total number of data points of the array.
java.lang.OutOfMemoryError
public static final int getDatatypeSize(int tid)
It basically just calls H5Tget_size(tid).
tid
- The datatype identifier.
H5.H5Tget_size(int)
public java.lang.String getDatatypeDescription()
Datatype
getDatatypeDescription
in class Datatype
public static final java.lang.String getDatatypeDescription(int tid)
tid
- the HDF5 datatype identifier
public boolean isUnsigned()
Datatype
isUnsigned
in class Datatype
public static final boolean isUnsigned(int datatype)
datatype
- the datatype ID to be checked.
public int open()
It calls H5.H5Topen(loc, name).
open
in class Datatype
H5.H5Topen(int, String)
public void close(int tid)
It calls H5.H5close(tid).
close
in class Datatype
tid
- the datatype ID to closepublic java.util.List getMetadata() throws HDF5Exception
DataFormat
Metadata such as attributes are stored in a List.
getMetadata
in interface DataFormat
getMetadata
in class Datatype
HDF5Exception
public java.util.List getMetadata(int... attrPropList) throws HDF5Exception
HDF5Exception
public void writeMetadata(java.lang.Object info) throws java.lang.Exception
DataFormat
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.
writeMetadata
in interface DataFormat
writeMetadata
in class Datatype
info
- the metadata to write.
java.lang.Exception
public void removeMetadata(java.lang.Object info) throws HDF5Exception
DataFormat
removeMetadata
in interface DataFormat
removeMetadata
in class Datatype
info
- the metadata to delete.
HDF5Exception
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |