public class HDSObject extends Object
HDSObject.
For this reason there is no constructor, a factory method like
hdsOpen or datFind should be used instead.
On the whole, the implementation of this class is such that a call to one of these methods results in a call to the similarly-named routine in the HDS library. This is not always the most efficient way to procure the data requested.
The arguments of the methods declared by this class are not identical
with those of the corresponding Fortran HDS calls, and
the documentation for each of the HDSObject methods
should be checked before use. However, the following rules in
general apply:
HDSObject object represented by that locator.
The locator itself is kept as a (private) member of the the
HDSObject, and will never be referred to by Java
code.
HDSException
is called. The getMessage method of the HDSException
returns the error message generated. All methods can therefore
throw an HDSException.
HDSObject object.
longs.
Using the above rules, we see that, for instance:
CALL DAT_FIND( LOC1, NAME, LOC2, STATUS )
becomes
public native HDSObject datFind( String name ) throws HDSException;
Note: This class is not complete; it is being added to as calls are required.
| Modifier and Type | Field and Description |
|---|---|
static int |
DAT__SZNAM
Maximum number of characters in the name of an HDS component.
|
static int |
DAT__SZTYP
maximum number of characters in the name of an HDS type string.
|
| Modifier and Type | Method and Description |
|---|---|
void |
datAnnul()
Annul locator.
|
HDSObject |
datCell(long[] position)
Get an
HDSObject from a cell (element) of an array object. |
HDSObject |
datClone()
Clone locator.
|
void |
datCopy(HDSObject hdsobj,
String name)
Recursively copy an object into a component.
|
void |
datErase(String name)
Erase component.
|
HDSObject |
datFind(String name)
Find named component.
|
String |
datGet0c()
Read scalar primitive as
String type. |
double |
datGet0d()
Read scalar primitive as
double type. |
int |
datGet0i()
Read scalar primitive as
int type. |
boolean |
datGet0l()
Read scalar primitive as
boolean type. |
float |
datGet0r()
Read scalar primitive as
float type. |
Object |
datGetc(long[] shape)
Read a primitive as
String type. |
Object |
datGetd(long[] shape)
Read a primitive as
double type. |
Object |
datGeti(long[] shape)
Read a primitive as
integer type. |
Object |
datGetl(long[] shape)
Read a primitive as
boolean type. |
Object |
datGetr(long[] shape)
Read a primitive as
float type. |
String[] |
datGetvc()
Read a primitive as
String type as if it were
vectorised (regardless of its actual shape). |
double[] |
datGetvd()
Read a primitive as
doubletype as if it were
vectorised (regardless of its actual shape). |
int[] |
datGetvi()
Read a primitive as
int type as if it were
vectorised (regardless of its actual shape). |
boolean[] |
datGetvl()
Read a primitive as
boolean type as if it were
vectorised (regardless of its actual shape). |
float[] |
datGetvr()
Read a primitive as
float type as if it were
vectorised (regardless of its actual shape). |
HDSObject |
datIndex(int index)
Index into component list.
|
Buffer |
datMapv(String type,
String mode)
Map primitive.
|
String |
datName()
Enquire object name.
|
int |
datNcomp()
Enquire number of components.
|
void |
datNew(String name,
String type,
long[] dims)
Create component.
|
HDSObject |
datParen()
Locate parent structure.
|
boolean |
datPrmry()
Enquire primary/secondary locator status.
|
void |
datPrmry(boolean primary)
Set primary/secondary locator status.
|
void |
datPut0c(String value)
Write scalar primitive.
|
void |
datPut0d(double value)
Write scalar primitive.
|
void |
datPut0i(int value)
Write scalar primitive.
|
void |
datPut0l(boolean value)
Write scalar primitive.
|
void |
datPut0r(float value)
Write scalar primitive.
|
void |
datPutvc(String[] value)
Write a primitive as if it were vectorised (regardless of its
actual shape).
|
void |
datPutvd(double[] value)
Write a primitive as if it were vectorised (regardless of its
actual shape).
|
void |
datPutvi(int[] value)
Write a primitive as if it were vectorised (regardless of its
actual shape).
|
void |
datPutvl(boolean[] value)
Write a primitive as if it were vectorised (regardless of its
actual shape).
|
void |
datPutvr(float[] value)
Write a primitive as if it were vectorised (regardless of its
actual shape).
|
String |
datRef()
Obtain a reference for an HDSObject.
|
long[] |
datShape()
Enquire object shape.
|
long |
datSize()
Enquire object size.
|
boolean |
datState()
Enquire object state.
|
boolean |
datStruc()
Enquire whether object is a structure.
|
boolean |
datThere(String name)
Enquire if a component of a structure exists.
|
String |
datType()
Enquire object type.
|
void |
datUnmap()
Unmap an object mapped by another
HDSObject method. |
boolean |
datValid()
Enquire locator validity.
|
protected void |
finalize() |
static int |
hdsGtune(String param)
Get HDS tuning parameter value.
|
static HDSObject |
hdsNew(String file,
String name,
String type,
long[] dims)
Create container file.
|
static HDSObject |
hdsOpen(String container,
String accessMode)
Open container file.
|
static void |
hdsShow(String topic)
Show HDS statistics.
|
int |
hdsTrace(String[] results)
Trace object path.
|
static void |
hdsTune(String param,
int value)
Set HDS tuning parameter.
|
String |
toString() |
public static final int DAT__SZNAM
public static final int DAT__SZTYP
protected void finalize()
throws Throwable
public static int hdsGtune(String param) throws HDSException
hdsTune(java.lang.String, int) routine).param - Name of the tuning parameterHDSException - if an HDS error occurs (STATUS is not SAI__OK)public static HDSObject hdsNew(String file, String name, String type, long[] dims) throws HDSException
file - the name of the container file to be created. ".sdf"
will be added an extension is not specified.name - the name of the object to be createdtype - the HDS type of the top-level object to be createddims - the dimensions of the top-level object to be createdHDSException - if an HDS error occurs (STATUS is not SAI__OK)public static HDSObject hdsOpen(String container, String accessMode) throws HDSException
container - the container file nameaccessMode - the access mode "READ", "UPDATE" or "WRITE"HDSObject representing
the newly opened container fileHDSException - if an HDS error occurs (STATUS is not SAI__OK)public static void hdsShow(String topic) throws HDSException
topic - name of the topic on which to supply information.
One of "DATA", "FILES" or "LOCATORS".HDSException - if an HDS error occurs (STATUS is not SAI__OK)public int hdsTrace(String[] results) throws HDSException
results - a two-element String array. On exit the first element
will be set to the object path name within the
container file, and the second element to the
container file name.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public static void hdsTune(String param, int value) throws HDSException
param - Name of the tuning parametervalue - the value of the tuning parameterHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datAnnul()
throws HDSException
It is not generally necessary for client code to call this method (though it is permissible), since it is called by the finalizer method. The garbage collector can therefore be relied upon to annul resources which are associated with unreferenced HDSObjects in due course. Note however that there is no guarantee when (or if) garbage collection will be performed, so side-effects of datAnnul, such as the unmapping of mapped data, must be invoked explicitly rather than leaving them to get done when the automatic annul is done.
HDSException - if an HDS error occurs (STATUS is not SAI__OK)public HDSObject datCell(long[] position) throws HDSException
HDSObject from a cell (element) of an array object.position - the location within the array of the cell to
retreiveHDSObject representing the
indicated element of the arrayHDSException - if an HDS error occurs (STATUS is not SAI__OK)public HDSObject datClone() throws HDSException
HDSObject referring to the same
object as this HDSObject except
that the locator will always be secondaryHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datCopy(HDSObject hdsobj, String name) throws HDSException
hdsobj - destination objectname - component name in destination objectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datErase(String name) throws HDSException
name - the name of the component within this
HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public HDSObject datFind(String name) throws HDSException
name - the name of the component within this
HDSObjectHDSObject representing the
named componentHDSException - if an HDS error occurs (STATUS is not SAI__OK)public Object datGetc(long[] shape) throws HDSException
String type.shape - an array giving the shape of
the HDS primitiveObject giving the contents of
this primitive HDSObject. If this object
represents an HDS array primitive, the return
value is an array, or
array of arrays, or ... of Strings,
according to the dimensionality of the primitive.
If this object is a scalar primitive
(shape has dimensionality of zero)
it will be the scalar value as a
String.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public Object datGetl(long[] shape) throws HDSException
boolean type.shape - an array giving the shape of
the HDS primitiveObject giving the contents of
this primitive HDSObject. If this object
represents an HDS array primitive,
the return value is an array, or
array of arrays, or ... of booleans,
according to the dimensionality of the primitive.
If this object is a scalar primitive
(shape has dimensionality of zero)
it will be an Boolean wrapping the
value.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public Object datGeti(long[] shape) throws HDSException
integer type.shape - an array giving the shape of
the HDS primitive to returnObject giving the contents of
this primitive HDSObject. If this object
represents an HDS array primitive,
the return value is an array, or
array of arrays, or ... of ints,
according to the dimensionality of the primitive.
If this object is a scalar primitive
(shape has dimensionality of zero)
it will be an Integer wrapping the
value.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public Object datGetr(long[] shape) throws HDSException
float type.shape - an array giving the shape of
the HDS primitive to returnObject giving the contents of
this primitive HDSObject. If this object
represents an HDS array primitive,
the return value is an array, or
array of arrays, or ... of floats,
according to the dimensionality of the primitive.
If this object is a scalar primitive
(shape has dimensionality of zero)
it will be an Float wrapping the
value.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public Object datGetd(long[] shape) throws HDSException
double type.shape - an array giving the shape of
the HDS primitive to returnObject giving the contents of
this primitive HDSObject. If this object
represents an HDS array primitive,
the return value is an array, or
array of arrays, or ... of doubles,
according to the dimensionality of the primitive.
If this object is a scalar primitive
(shape has dimensionality of zero)
it will be an Double wrapping the
value.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public String[] datGetvc() throws HDSException
String type as if it were
vectorised (regardless of its actual shape).
The length of the returned array will be the size of the entire array
of this object (note: one element for each array element, not for
each character). Trailing blanks in the strings will be trimmed so
strings may be smaller than their declared size. This method cannot
be used to read arrays with more than Integer.MAX_VALUE
elements.Strings,
one for each element in the primitive array.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public boolean[] datGetvl()
throws HDSException
boolean type as if it were
vectorised (regardless of its actual shape).
The length of the returned array will be the size of the entire
array of this object. This method cannot be used to read arrays
with more than Integer.MAX_VALUE elements.booleans
containing all the values of the primitive arrayHDSException - if an HDS error occurs (STATUS is not SAI__OK)public int[] datGetvi()
throws HDSException
int type as if it were
vectorised (regardless of its actual shape).
The length of the returned array will be the size of the entire
array of this object. This method cannot be used to read arrays
with more than Integer.MAX_VALUE elements.ints
containing all the values of the primitive arrayHDSException - if an HDS error occurs (STATUS is not SAI__OK)public float[] datGetvr()
throws HDSException
float type as if it were
vectorised (regardless of its actual shape).
The length of the returned array will be the size of the entire
array of this object. This method cannot be used to read arrays
with more than Integer.MAX_VALUE elements.floats
containing all the values of the primitive arrayHDSException - if an HDS error occurs (STATUS is not SAI__OK)public double[] datGetvd()
throws HDSException
doubletype as if it were
vectorised (regardless of its actual shape).
The length of the returned array will be the size of the entire
array of this object. This method cannot be used to read arrays
with more than Integer.MAX_VALUE elements.doubles
containing all the values of the primitive arrayHDSException - if an HDS error occurs (STATUS is not SAI__OK)public String datGet0c() throws HDSException
String type.
As with the underlying HDS routine, this may be used to return a
representation of a scalar value of any type.HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public boolean datGet0l()
throws HDSException
boolean type.HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public int datGet0i()
throws HDSException
int type.HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public float datGet0r()
throws HDSException
float type.HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public double datGet0d()
throws HDSException
double type.HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public HDSObject datIndex(int index) throws HDSException
index - position in list of component to returnHDSObject representing the
index'th component of this
HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public Buffer datMapv(String type, String mode) throws HDSException
Buffer of a type determined
by the type parameter. Note that the unsigned HDS types (_UWORD and
_UBYTE) are not currently supported (an IllegalArgumentException
will be thrown).type - an HDS type string giving the type with which to map
the array; one of "_BYTE", "_WORD", "_INTEGER", "_REAL",
"_DOUBLE".mode - a string indicating access mode; one of "READ",
"WRITE", "UPDATE".HDSException - if an HDS error occurs (STATUS is not SAI__OK)UnsupportedOperationException - if the JNI implementation
does not support mapping of a direct bufferpublic String datName() throws HDSException
HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public int datNcomp()
throws HDSException
HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datNew(String name, String type, long[] dims) throws HDSException
name - the name of the new component.type - the type of the new component - if it matches one of the
primitive types a primitive is created, otherwise it
is assumed to be a structuredims - component dimensionsHDSException - if an HDS error occurs (STATUS is not SAI__OK) -
in particular if the named componene already
exists in this HDSObjectpublic HDSObject datParen() throws HDSException
HDSException - if an HDS error occurs (STATUS is not SAI__OK) -
in particular if the object has no parent
because it is at the top level in an HDS
container file.public boolean datPrmry()
throws HDSException
datPrmry method
to handle the distinct get/set semantics of the underlying routine.true if the locator of this HDSObject
is primary, false if it is secondaryHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPrmry(boolean primary)
throws HDSException
datPrmry method
to handle the distinct get/set semantics of the underlying routine.primary - true to set the locator of this
HDSObject to primary, or
false to set it to secondaryHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPut0c(String value) throws HDSException
value - the value to be writtenHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPut0l(boolean value)
throws HDSException
value - the value to be writtenHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPut0i(int value)
throws HDSException
value - the value to be writtenHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPut0r(float value)
throws HDSException
value - the value to be writtenHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPut0d(double value)
throws HDSException
value - the value to be writtenHDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPutvc(String[] value) throws HDSException
Integer.MAX_VALUE elements.value - an array containing the values to be written.
Must contain enough elements to fill the entire object.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPutvl(boolean[] value)
throws HDSException
Integer.MAX_VALUE elements.value - an array containing the values to be written.
Must contain enough elements to fill the entire object.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPutvi(int[] value)
throws HDSException
Integer.MAX_VALUE elements.value - an array containing the values to be written.
Must contain enough elements to fill the entire object.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPutvr(float[] value)
throws HDSException
Integer.MAX_VALUE elements.value - an array containing the values to be written.
Must contain enough elements to fill the entire object.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datPutvd(double[] value)
throws HDSException
Integer.MAX_VALUE elements.value - an array containing the values to be written.
Must contain enough elements to fill the entire object.HDSException - if an HDS error occurs (STATUS is not SAI__OK)public String datRef() throws HDSException
HDSExceptionpublic long[] datShape()
throws HDSException
HDSObjectHDSException - if an HDS error occurs (STATUS is not SAI__OK)public long datSize()
throws HDSException
HDSException - if an HDS error occurs (STATUS is not SAI__OK)public boolean datState()
throws HDSException
HDSExceptionpublic boolean datStruc()
throws HDSException
true if this object is a structure,
otherwise falseHDSException - if an HDS error occurs (STATUS is not SAI__OK)public boolean datThere(String name) throws HDSException
name - the name of a component whose existence is
to be queriedtrue if a component called
name is
contained in this object, otherwise
falseHDSException - if an HDS error occurs (STATUS is not SAI__OK)public String datType() throws HDSException
String giving one of the
following HDS type strings:
HDSException - if an HDS error occurs (STATUS is not SAI__OK)public void datUnmap()
throws HDSException
HDSObject method.HDSExceptionpublic boolean datValid()
throws HDSException
true if this HDSobject
refers to a valid HDS object, false
otherwise. It should normally be true unless
the datAnnul method has been
called on it.HDSException - if an HDS error occurs (STATUS is not SAI__OK)Copyright © 2025 Central Laboratory of the Research Councils. All Rights Reserved.