public class H4Datatype extends Datatype
This class provides several methods to convert an HDF4 datatype identifier to a datatype object, and vice versa. A datatype object is described by four basic fields: datatype class, size, byte order, and sign, while an HDF5 datatype is presented by a datatype identifier.
baseType, CLASS_ARRAY, CLASS_BITFIELD, CLASS_CHAR, CLASS_COMPOUND, CLASS_ENUM, CLASS_FLOAT, CLASS_INTEGER, CLASS_NO_CLASS, CLASS_OPAQUE, CLASS_REFERENCE, CLASS_STRING, CLASS_TIME, CLASS_VLEN, datatypeClass, datatypeOrder, datatypeSign, datatypeSize, dims, enumMembers, NATIVE, NSGN, ORDER_BE, ORDER_LE, ORDER_NONE, ORDER_VAX, SIGN_2, SIGN_NONE
fileFormat, linkTargetObjName, oid, separator
Constructor and Description |
---|
H4Datatype(int nativeID)
Constructs a H4Datatype with a given native datatype identifier.
|
H4Datatype(int tclass,
int tsize,
int torder,
int tsign)
Constructs a H4Datatype with specified class, size, byte order and sign.
|
Modifier and Type | Method and Description |
---|---|
static java.lang.Object |
allocateArray(int datatype,
int datasize)
Allocate a 1D array large enough to hold a multidimensional
array of 'datasize' elements of 'datatype' numbers.
|
void |
close(int id)
Closes a datatype identifier.
|
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 datatype)
Returns the short description of a given datatype.
|
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 the datatype is an unsigned integer.
|
int |
toNative()
Converts the datatype object to a native datatype.
|
getBasetype, getDatatypeClass, getDatatypeOrder, getDatatypeSign, getDatatypeSize, getEnumMembers, getMetadata, open, removeMetadata, setEnumMembers, updateMetadata, writeMetadata
debug, equalsOID, getFID, getFile, getFileFormat, getFullName, getLinkTargetObjName, getName, getOID, getPath, setLinkTargetObjName, setName, setPath, toString
public H4Datatype(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 H4Datatype(int nativeID)
For example,
Datatype dtype = new H4Datatype(HDFConstants.DFNT_INT32);will construct a datatype equivalent to new H4Datatype(CLASS_INTEGER, 4, NATIVE, SIGN_NONE);
nativeID
- the native datatype identifier.fromNative(int nativeID)
public boolean hasAttribute()
DataFormat
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.public static final java.lang.Object allocateArray(int datatype, int datasize) throws java.lang.OutOfMemoryError
datatype
- the data typedatasize
- the size of the data arrayjava.lang.OutOfMemoryError
public java.lang.String getDatatypeDescription()
Datatype
getDatatypeDescription
in class Datatype
public static final java.lang.String getDatatypeDescription(int datatype)
public boolean isUnsigned()
Datatype
isUnsigned
in class Datatype
public static final boolean isUnsigned(int datatype)
datatype
- the data type.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);
public void close(int id)
Datatype
Sub-clases must replace this default implementation.
public java.util.List getMetadata(int... attrPropList) throws java.lang.Exception
java.lang.Exception