|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object | +--ucar.multiarray.StringCharAdapter
This MultiArray implementation wraps another MultiArray of Character componentType to produce a MultiArray of one less rank with String componentType.
MultiArray| Constructor Summary | |
StringCharAdapter(MultiArray delegate,
char fillValue)
Construct a new proxy. |
|
| Method Summary | |
void |
copyin(int[] origin,
MultiArray data)
Aggregate write access. |
MultiArray |
copyout(int[] origin,
int[] shape)
Aggregate read access. |
java.lang.Object |
get(int[] index)
Get (read) the array element at index. |
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. |
java.lang.Class |
getComponentType()
Returns the Class object representing the component type of the array. |
double |
getDouble(int[] index)
Get the array element at index, as a double. |
char |
getFillValue()
|
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()
Returns the shape of the backing MultiArray as transformed by the dimensionsInverseMap() method of
the IndexMap. |
long |
getLong(int[] index)
Get the array element at index, as a long. |
int |
getRank()
Returns the number of dimensions of the backing MultiArray, as transformed by the rankInverseMap() method of
the IndexMap. |
short |
getShort(int[] index)
Get the array element at index, as a short. |
boolean |
isScalar()
Convenience interface; return true
if and only if the rank is zero. |
boolean |
isUnlimited()
Returns true if and only if the effective dimension
lengths can change. |
static void |
main(java.lang.String[] args)
|
void |
set(int[] index,
java.lang.Object value)
Length of index must equal rank() of this. |
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. |
java.lang.Object |
toArray()
Returns a new array containing all of the elements in this MultiArray. |
java.lang.Object |
toArray(java.lang.Object dst,
int[] origin,
int[] shape)
Returns an array containing elements of this MultiArray specified by origin and shape, possibly converting the component type. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public StringCharAdapter(MultiArray delegate,
char fillValue)
delegate - MultiArray of Character componentTypefillValue - char which used as terminator and fill value| Method Detail |
public char getFillValue()
public java.lang.Class getComponentType()
getComponentType in interface MultiArrayInfoClass.getComponentType()public int getRank()
rankInverseMap() method of
the IndexMap.getRank in interface MultiArrayInfopublic int[] getLengths()
dimensionsInverseMap() method of
the IndexMap.getLengths in interface MultiArrayInfopublic boolean isUnlimited()
true if and only if the effective dimension
lengths can change.isUnlimited in interface MultiArrayInfoucar.multiarray.MultiArrayInfotrue iff this can growpublic boolean isScalar()
true
if and only if the rank is zero.isScalar in interface MultiArrayInfotrue iff rank == 0
public java.lang.Object get(int[] index)
throws java.io.IOException
Accessorget in interface Accessorindex
Length of index must equal rank() of this.
Values of index components must be less than corresponding
values from getLengths().public boolean getBoolean(int[] index)
AccessorgetBoolean in interface Accessorucar.multiarray.AccessorAccessor.get(int[])
public char getChar(int[] index)
throws java.io.IOException
AccessorgetChar in interface Accessorucar.multiarray.AccessorAccessor.get(int[])public byte getByte(int[] index)
AccessorgetByte in interface Accessorucar.multiarray.AccessorAccessor.get(int[])public short getShort(int[] index)
AccessorgetShort in interface Accessorucar.multiarray.AccessorAccessor.get(int[])public int getInt(int[] index)
AccessorgetInt in interface Accessorucar.multiarray.AccessorAccessor.get(int[])public long getLong(int[] index)
AccessorgetLong in interface Accessorucar.multiarray.AccessorAccessor.get(int[])public float getFloat(int[] index)
AccessorgetFloat in interface Accessorucar.multiarray.AccessorAccessor.get(int[])public double getDouble(int[] index)
AccessorgetDouble in interface Accessorucar.multiarray.AccessorAccessor.get(int[])
public void set(int[] index,
java.lang.Object value)
throws java.io.IOException
set in interface Accessorucar.multiarray.Accessorindex - MultiArray indexvalue - the new value.NullPointerException - If the index argument is null, or
if the array has a primitive component type and the value argument is
nulljava.lang.IllegalArgumentException - If the array length of index is
too smalljava.lang.ArrayIndexOutOfBoundsException - If an index component
argument is negative, or if it is greater than or equal to the
corresponding dimension length.
public void setBoolean(int[] index,
boolean value)
AccessorsetBoolean in interface Accessorucar.multiarray.AccessorAccessor.set(int[], java.lang.Object)
public void setChar(int[] index,
char value)
AccessorsetChar in interface Accessorucar.multiarray.AccessorAccessor.set(int[], java.lang.Object)
public void setByte(int[] index,
byte value)
AccessorsetByte in interface Accessorucar.multiarray.AccessorAccessor.set(int[], java.lang.Object)
public void setShort(int[] index,
short value)
AccessorsetShort in interface Accessorucar.multiarray.AccessorAccessor.set(int[], java.lang.Object)
public void setInt(int[] index,
int value)
AccessorsetInt in interface Accessorucar.multiarray.AccessorAccessor.set(int[], java.lang.Object)
public void setLong(int[] index,
long value)
AccessorsetLong in interface Accessorucar.multiarray.AccessorAccessor.set(int[], java.lang.Object)
public void setFloat(int[] index,
float value)
AccessorsetFloat in interface Accessorucar.multiarray.AccessorAccessor.set(int[], java.lang.Object)
public void setDouble(int[] index,
double value)
AccessorsetDouble in interface Accessorucar.multiarray.AccessorAccessor.set(int[], java.lang.Object)
public MultiArray copyout(int[] origin,
int[] shape)
throws java.io.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 AccessorAccessor.copyout(int[], int[])
public void copyin(int[] origin,
MultiArray data)
throws java.io.IOException
AccessorHopefully this member can be optimized in various situations.
assert(origin[ii] + (source.getLengths())[ii]
<= (getLengths())[ii]);
copyin in interface AccessorAccessor.copyin(int[], ucar.multiarray.MultiArray)
public java.lang.Object toArray()
throws java.io.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 AccessorTODO: optimize?
public java.lang.Object toArray(java.lang.Object dst,
int[] origin,
int[] shape)
throws java.io.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 AccessorTODO: optimize?public static void main(java.lang.String[] args)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||