|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectucar.netcdf.Variable
Variable is a (potentially large) multi-dimensional array of primitives. The dimensions are named, allowing relationships between Variables to be expressed. Variables have names and may have descriptive attributes.
Objects which implement this interface exist in the context of a particular Netcdf data set. If you factor out the data access methods of this interface, leaving the descriptive "meta" information, what remains is a ProtoVariable.
Although there is no explicit relationship between this interface and class ProtoVariable, they share common method signatures and semantics where appropriate.
ProtoVariable,
MultiArray| Field Summary | |
(package private) Accessor |
io
|
(package private) ProtoVariable |
meta
|
| Constructor Summary | |
Variable(ProtoVariable proto,
Accessor io)
The usual constructor. |
|
| Method Summary | |
(package private) void |
connectDims(DimensionDictionary dimensions)
Ensure that the dimensions referenced by this are members of the specified Dictionary. |
void |
copyin(int[] origin,
MultiArray data)
Aggregate write access. |
MultiArray |
copyout(int[] origin,
int[] shape)
Aggregate read access. |
Object |
get(int[] index)
Get (read) the array element at index. |
Attribute |
getAttribute(String name)
Convenience function; look up Attribute by name. |
AttributeSet |
getAttributes()
Returns the set of attributes associated with this. |
boolean |
getBoolean(int[] index)
Get the array element at index, as a boolean. |
byte |
getByte(int[] index)
Get the array element at index, as a byte. |
char |
getChar(int[] index)
Get the array element at index, as a char. |
Class |
getComponentType()
Returns the Class object representing the component type of the array. |
DimensionIterator |
getDimensionIterator()
Returns a DimensionIterator of the dimensions used by this variable. |
double |
getDouble(int[] index)
Get the array element at index, as a double. |
float |
getFloat(int[] index)
Get the array element at index, as a float. |
int |
getInt(int[] index)
Get the array element at index, as an int. |
int[] |
getLengths()
Discover the dimensions of this MultiArray. |
long |
getLong(int[] index)
Get the array element at index, as a long. |
String |
getName()
Returns the name of this Variable. |
int |
getRank()
Returns the number of dimensions. |
short |
getShort(int[] index)
Get the array element at index, as a short. |
Object |
getStorage()
|
boolean |
isScalar()
Convenience interface; return true
if and only if the rank is zero. |
boolean |
isUnlimited()
Returns true if and only if the this variable can grow. |
void |
set(int[] index,
Object value)
Set (modify, write) the array element at index to the specified value. |
void |
setBoolean(int[] index,
boolean value)
Set the array element at index to the specified boolean value. |
void |
setByte(int[] index,
byte value)
Set the array element at index to the specified byte value. |
void |
setChar(int[] index,
char value)
Set the array element at index to the specified char value. |
void |
setDouble(int[] index,
double value)
Set the array element at index to the specified double value. |
void |
setFloat(int[] index,
float value)
Set the array element at index to the specified float value. |
void |
setInt(int[] index,
int value)
Set the array element at index to the specified int value. |
void |
setLong(int[] index,
long value)
Set the array element at index to the specified long value. |
void |
setShort(int[] index,
short value)
Set the array element at index to the specified short value. |
Object |
toArray()
Returns a new array containing all of the elements in this MultiArray. |
Object |
toArray(Object dst,
int[] origin,
int[] shape)
Returns an array containing elements of this MultiArray specified by origin and shape, possibly converting the component type. |
void |
toCdl(StringBuffer buf)
Format as CDL. |
String |
toString()
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
final ProtoVariable meta
final Accessor io
| Constructor Detail |
public Variable(ProtoVariable proto,
Accessor io)
proto - the ProtoVariable used as metadata storage.
Shouldn't be null.
It should be immutable over the lifetime of this object.
(If in doubt, hand this its own private copy.)| Method Detail |
public Class getComponentType()
getComponentType in interface MultiArrayInfoMultiArrayInfo.getComponentType()public int getRank()
getRank in interface MultiArrayInfoMultiArrayInfo.getRank()public int[] getLengths()
MultiArrayInfo
getLengths in interface MultiArrayInfoMultiArrayInfo.getLengths()public boolean isUnlimited()
true if and only if the this variable can grow.
This is equivalent to saying
at least one of its dimensions is unlimited.
In the current implementation, exactly one dimension, the most
slowly varying (leftmost), can be unlimited.
isUnlimited in interface MultiArrayInfotrue iff this can growpublic boolean isScalar()
true
if and only if the rank is zero.
isScalar in interface MultiArrayInfotrue iff rank == 0public String getName()
getName in interface Namedpublic DimensionIterator getDimensionIterator()
DimensionIteratorpublic AttributeSet getAttributes()
public Attribute getAttribute(String name)
name - the name of the attribute
public Object get(int[] index)
throws IOException
Accessor
get in interface Accessorindex - MultiArray index
index
IOException
public boolean getBoolean(int[] index)
throws IOException
Accessor
getBoolean in interface AccessorIOExceptionAccessor.get(int[])
public char getChar(int[] index)
throws IOException
Accessor
getChar in interface AccessorIOExceptionAccessor.get(int[])
public byte getByte(int[] index)
throws IOException
Accessor
getByte in interface AccessorIOExceptionAccessor.get(int[])
public short getShort(int[] index)
throws IOException
Accessor
getShort in interface AccessorIOExceptionAccessor.get(int[])
public int getInt(int[] index)
throws IOException
Accessor
getInt in interface AccessorIOExceptionAccessor.get(int[])
public long getLong(int[] index)
throws IOException
Accessor
getLong in interface AccessorIOExceptionAccessor.get(int[])
public float getFloat(int[] index)
throws IOException
Accessor
getFloat in interface AccessorIOExceptionAccessor.get(int[])
public double getDouble(int[] index)
throws IOException
Accessor
getDouble in interface AccessorIOExceptionAccessor.get(int[])
public void set(int[] index,
Object value)
throws IOException
Accessor
set in interface Accessorindex - MultiArray indexvalue - the new value.
IOException
public void setBoolean(int[] index,
boolean value)
throws IOException
Accessor
setBoolean in interface AccessorIOExceptionAccessor.set(int[], java.lang.Object)
public void setChar(int[] index,
char value)
throws IOException
Accessor
setChar in interface AccessorIOExceptionAccessor.set(int[], java.lang.Object)
public void setByte(int[] index,
byte value)
throws IOException
Accessor
setByte in interface AccessorIOExceptionAccessor.set(int[], java.lang.Object)
public void setShort(int[] index,
short value)
throws IOException
Accessor
setShort in interface AccessorIOExceptionAccessor.set(int[], java.lang.Object)
public void setInt(int[] index,
int value)
throws IOException
Accessor
setInt in interface AccessorIOExceptionAccessor.set(int[], java.lang.Object)
public void setLong(int[] index,
long value)
throws IOException
Accessor
setLong in interface AccessorIOExceptionAccessor.set(int[], java.lang.Object)
public void setFloat(int[] index,
float value)
throws IOException
Accessor
setFloat in interface AccessorIOExceptionAccessor.set(int[], java.lang.Object)
public void setDouble(int[] index,
double value)
throws IOException
Accessor
setDouble in interface AccessorIOExceptionAccessor.set(int[], java.lang.Object)
public MultiArray copyout(int[] origin,
int[] shape)
throws IOException
AccessorIt is easier to implement than to specify :-).
The main reason to implement this instead of using the equivalent proxy is for remote or file access.
assert(origin[ii] + shape[ii] <= lengths[ii]);
copyout in interface Accessororigin - int array specifying the starting index.shape - int array specifying the extents in each
dimension. This becomes the shape of the return.
IOException
public void copyin(int[] origin,
MultiArray data)
throws IOException
AccessorHopefully this member can be optimized in various situations.
assert(origin[ii] + (source.getLengths())[ii]
<= (getLengths())[ii]);
copyin in interface Accessororigin - int array specifying the starting index.data - MultiArray with the same componentType as
this and shape smaller than
this.getLengths() - origin
IOException
public Object toArray()
throws IOException
AccessorThis method acts as bridge between array-based and MultiArray-based APIs.
This method is functionally equivalent to
Object anArray = Array.newInstance(getComponentType(), 1);
int [] origin = new int[getRank()]
int [] shape = getDimensions();
return toArray(anArray, origin, shape);
toArray in interface AccessorIOExceptionpublic Object getStorage()
getStorage in interface MultiArray
public Object toArray(Object dst,
int[] origin,
int[] shape)
throws IOException
AccessorThe anArray argument should be an array. If it is large enough to contain the output, it is used and no new storage is allocated. Otherwise, new storage is allocated with the same component type as the argument, and the data is copied into it.
This method acts as bridge between array-based and MultiArray-based APIs.
This method is similar to copyout(origin, shape).toArray(), but avoids a copy operation and (potentially) an allocation.
NOTE: Implementation of type conversion is deferred until
JDK 1.2. Currently, the componentType of anArray
must be the same as this
toArray in interface AccessorIOExceptionpublic void toCdl(StringBuffer buf)
buf - StringBuffer into which to writepublic String toString()
void connectDims(DimensionDictionary dimensions)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||