public class ArrayStructureBB extends ArrayStructure
Structure pdata = (Structure) ncfile.findVariable( name);
StructureMembers members = pdata.makeStructureMembers();
members.findMember("value").setDataParam(0); // these are the offsets into the record
members.findMember("x_start").setDataParam(2);
members.findMember("y_start").setDataParam(4);
members.findMember("direction").setDataParam(6);
members.findMember("speed").setDataParam(8);
int recsize = pos[1] - pos[0]; // each record must be all the same size
members.setStructureSize( recsize);
ArrayStructureBB asbb = new ArrayStructureBB( members, new int[] { size}, bos, pos[0]);
For String members, you must store the Strings in the stringHeap. An integer index into the heap is used in the ByteBuffer.ArrayArrayStructure.ArrayStructureIterator| Modifier and Type | Field and Description |
|---|---|
protected int |
bb_offset |
protected java.nio.ByteBuffer |
bbuffer |
members, nelems, sdata| Constructor and Description |
|---|
ArrayStructureBB(StructureMembers members,
int[] shape)
Create a new Array of type StructureData and the given members and shape.
|
ArrayStructureBB(StructureMembers members,
int[] shape,
java.nio.ByteBuffer bbuffer,
int offset)
Construct an ArrayStructureBB with the given ByteBuffer.
|
| Modifier and Type | Method and Description |
|---|---|
int |
addObjectToHeap(java.lang.Object s) |
protected int |
calcOffsetSetOrder(int recnum,
StructureMembers.Member m) |
protected void |
copyBytes(int recnum,
StructureMembers.Member m,
IndexIterator result) |
protected void |
copyChars(int recnum,
StructureMembers.Member m,
IndexIterator result) |
protected void |
copyDoubles(int recnum,
StructureMembers.Member m,
IndexIterator result) |
protected void |
copyFloats(int recnum,
StructureMembers.Member m,
IndexIterator result) |
protected void |
copyInts(int recnum,
StructureMembers.Member m,
IndexIterator result) |
protected void |
copyLongs(int recnum,
StructureMembers.Member m,
IndexIterator result) |
protected void |
copyObjects(int recnum,
StructureMembers.Member m,
IndexIterator result) |
protected void |
copyShorts(int recnum,
StructureMembers.Member m,
IndexIterator result) |
ArraySequence |
getArraySequence(int recnum,
StructureMembers.Member m)
Get member data of type ArraySequence
|
ArrayStructure |
getArrayStructure(int recnum,
StructureMembers.Member m)
Get member data of type array of Structure.
|
java.nio.ByteBuffer |
getByteBuffer()
Return backing storage as a ByteBuffer
|
java.util.List<java.lang.Object> |
getHeap()
DO NOT MODIFY
|
byte[] |
getJavaArrayByte(int recnum,
StructureMembers.Member m)
Get member data of type byte as a 1D array.
|
char[] |
getJavaArrayChar(int recnum,
StructureMembers.Member m)
Get member data of type char as a 1D array.
|
double[] |
getJavaArrayDouble(int recnum,
StructureMembers.Member m)
Get member data of type double as a 1D array.
|
float[] |
getJavaArrayFloat(int recnum,
StructureMembers.Member m)
Get member data of type float as a 1D array.
|
int[] |
getJavaArrayInt(int recnum,
StructureMembers.Member m)
Get member data of type int as a 1D array.
|
long[] |
getJavaArrayLong(int recnum,
StructureMembers.Member m)
Get member data of type long as a 1D array.
|
short[] |
getJavaArrayShort(int recnum,
StructureMembers.Member m)
Get member data of type short as a 1D array.
|
java.lang.String[] |
getJavaArrayString(int recnum,
StructureMembers.Member m)
Get member data of type String as a 1D array.
|
byte |
getScalarByte(int recnum,
StructureMembers.Member m)
Get scalar member data of type byte.
|
char |
getScalarChar(int recnum,
StructureMembers.Member m)
Get scalar member data of type char.
|
double |
getScalarDouble(int recnum,
StructureMembers.Member m)
Get scalar member data of type double.
|
float |
getScalarFloat(int recnum,
StructureMembers.Member m)
Get scalar member data of type float.
|
int |
getScalarInt(int recnum,
StructureMembers.Member m)
Get scalar member data of type int.
|
long |
getScalarLong(int recnum,
StructureMembers.Member m)
Get scalar member data of type long.
|
short |
getScalarShort(int recnum,
StructureMembers.Member m)
Get scalar member data of type short.
|
java.lang.String |
getScalarString(int recnum,
StructureMembers.Member m)
Get member data of type String or char.
|
StructureData |
getScalarStructure(int recnum,
StructureMembers.Member m)
Get member data of type Structure.
|
static void |
main(java.lang.String[] argv) |
protected StructureData |
makeStructureData(ArrayStructure as,
int index) |
static int |
setOffsets(StructureMembers members)
Set the offsets, based on m.getSizeBytes().
|
void |
showInternal(java.util.Formatter f,
java.lang.String leadingSpace) |
convertScalarDouble, convertScalarFloat, convertScalarInt, convertScalarLong, copy, copySequences, copyStructures, createView, extractMemberArray, findMember, getArray, getArrayObject, getBoolean, getBoolean, getByte, getByte, getChar, getChar, getDouble, getDouble, getElementType, getFloat, getFloat, getInt, getInt, getLong, getLong, getMembers, getObject, getObject, getScalarObject, getShort, getShort, getSizeBytes, getStorage, getStructureData, getStructureData, getStructureDataIterator, getStructureMemberNames, getStructureMembers, getStructureSize, setBoolean, setBoolean, setByte, setByte, setChar, setChar, setDouble, setDouble, setFloat, setFloat, setInt, setInt, setLong, setLong, setMemberArray, setObject, setObject, setShort, setShort, showInternalMembersarraycopy, copyTo1DJavaArray, copyToNDJavaArray, factory, factory, factory, factory, factory, factory, factoryConstant, flip, get1DJavaArray, getDataAsByteBuffer, getIndex, getIndexIterator, getIndexIteratorFast, getIndexPrivate, getRangeIterator, getRank, getShape, getSize, hasNext, isConstant, isUnsigned, makeArray, makeArray, makeArray, next, nextBoolean, nextByte, nextChar, nextDouble, nextFloat, nextInt, nextLong, nextShort, permute, reduce, reduce, resetLocalIterator, reshape, reshapeNoCopy, section, section, section, sectionNoReduce, sectionNoReduce, setUnsigned, shapeToString, slice, toString, transposepublic ArrayStructureBB(StructureMembers members, int[] shape)
byte [] result = (byte []) structureArray.getStorage(); members - a description of the structure membersshape - the shape of the Array.public ArrayStructureBB(StructureMembers members, int[] shape, java.nio.ByteBuffer bbuffer, int offset)
members - the list of structure members.shape - the shape of the structure arraybbuffer - the data is stored in this ByteBuffer. bbuffer.order must already be set.offset - offset from the start of the ByteBufffer to the first record.public static int setOffsets(StructureMembers members)
members - set offsets for these membersprotected StructureData makeStructureData(ArrayStructure as, int index)
makeStructureData in class ArrayStructurepublic java.nio.ByteBuffer getByteBuffer()
public double getScalarDouble(int recnum,
StructureMembers.Member m)
ArrayStructuregetScalarDouble in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type double.public double[] getJavaArrayDouble(int recnum,
StructureMembers.Member m)
ArrayStructuregetJavaArrayDouble in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type double.protected void copyDoubles(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyDoubles in class ArrayStructurepublic float getScalarFloat(int recnum,
StructureMembers.Member m)
ArrayStructuregetScalarFloat in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type float.public float[] getJavaArrayFloat(int recnum,
StructureMembers.Member m)
ArrayStructuregetJavaArrayFloat in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type float.protected void copyFloats(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyFloats in class ArrayStructurepublic byte getScalarByte(int recnum,
StructureMembers.Member m)
ArrayStructuregetScalarByte in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type byte.public byte[] getJavaArrayByte(int recnum,
StructureMembers.Member m)
ArrayStructuregetJavaArrayByte in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type byte.protected void copyBytes(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyBytes in class ArrayStructurepublic short getScalarShort(int recnum,
StructureMembers.Member m)
ArrayStructuregetScalarShort in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type short.public short[] getJavaArrayShort(int recnum,
StructureMembers.Member m)
ArrayStructuregetJavaArrayShort in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type float.protected void copyShorts(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyShorts in class ArrayStructurepublic int getScalarInt(int recnum,
StructureMembers.Member m)
ArrayStructuregetScalarInt in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type int.public int[] getJavaArrayInt(int recnum,
StructureMembers.Member m)
ArrayStructuregetJavaArrayInt in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type int.protected void copyInts(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyInts in class ArrayStructurepublic long getScalarLong(int recnum,
StructureMembers.Member m)
ArrayStructuregetScalarLong in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type long.public long[] getJavaArrayLong(int recnum,
StructureMembers.Member m)
ArrayStructuregetJavaArrayLong in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type long.protected void copyLongs(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyLongs in class ArrayStructurepublic char getScalarChar(int recnum,
StructureMembers.Member m)
ArrayStructuregetScalarChar in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type char.public char[] getJavaArrayChar(int recnum,
StructureMembers.Member m)
ArrayStructuregetJavaArrayChar in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type char.protected void copyChars(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyChars in class ArrayStructurepublic java.lang.String getScalarString(int recnum,
StructureMembers.Member m)
ArrayStructuregetScalarString in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type String or char.public java.lang.String[] getJavaArrayString(int recnum,
StructureMembers.Member m)
ArrayStructuregetJavaArrayString in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type String.protected void copyObjects(int recnum,
StructureMembers.Member m,
IndexIterator result)
copyObjects in class ArrayStructurepublic StructureData getScalarStructure(int recnum, StructureMembers.Member m)
ArrayStructuregetScalarStructure in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type Structure.public ArrayStructure getArrayStructure(int recnum, StructureMembers.Member m)
ArrayStructuregetArrayStructure in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type Structure.public ArraySequence getArraySequence(int recnum, StructureMembers.Member m)
ArrayStructuregetArraySequence in class ArrayStructurerecnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();m - get data from this StructureMembers.Member. Must be of type Structure.protected int calcOffsetSetOrder(int recnum,
StructureMembers.Member m)
public int addObjectToHeap(java.lang.Object s)
public java.util.List<java.lang.Object> getHeap()
public void showInternal(java.util.Formatter f,
java.lang.String leadingSpace)
showInternal in class ArrayStructurepublic static void main(java.lang.String[] argv)