类 ArrayStructureBak

  • 直接已知子类:
    ArraySequence, ArraySequenceNested, ArrayStructureBB, ArrayStructureComposite, ArrayStructureMA, ArrayStructureW

    public abstract class ArrayStructureBak
    extends Array
    Superclass for implementations of Array of StructureData.

    The general way to access data in an ArrayStructure is to use

     StructureData getStructureData(Index index).

    For 1D arrays (or by calculating your own recnum for nD arrays), you can also use:

     StructureData getStructureData(int recnum).

    Once you have a StructureData object, you can access data in a general way by using:

     Array StructureData.getArray(Member m) 

    When dealing with large arrays of Structures, there can be significant overhead in using the generic interfaces. A number of convenience routines may be able to avoid extra Object creation, and so are recommended for efficiency. The following may avoid the overhead of creating the StructureData object:

     Array getArray(int recno, StructureMembers.Member m) 

    The following can be convenient for accessing all the data in the ArrayStructure for one member, but its efficiency depends on the implementation:

     Array getMemberArray(StructureMembers.Member m) 

    These require that you know the data types of the member data, but they are the most efficent:

     getScalarXXX(int recnum, Member m)
     getJavaArrayXXX(int recnum, Member m) 
    where XXX is Byte, Char, Double, Float, Int, Long, Short, or String. For members that are themselves Structures, the equivilent is:
     StructureData getScalarStructure(int recnum, Member m)
     ArrayStructure getArrayStructure(int recnum, Member m) 

    These will return any compatible type as a double or float, but will have extra overhead when the types dont match:

     convertScalarXXX(int recnum, Member m)
     convertJavaArrayXXX(int recnum, Member m) 
    where XXX is Double or Float
    作者:
    caron
    另请参阅:
    Array, StructureData
    • 构造器详细资料

      • ArrayStructureBak

        protected ArrayStructureBak​(StructureMembers members,
                                    int[] shape)
        Create a new Array of type StructureData and the given members and shape. dimensions.length determines the rank of the new Array.
        参数:
        members - a description of the structure members
        shape - the shape of the Array.
    • 方法详细资料

      • getElementType

        public java.lang.Class getElementType()
        从类复制的说明: Array
        Get the element class type of this Array
        指定者:
        getElementType 在类中 Array
        返回:
        the class of the element
      • getStructureMembers

        public StructureMembers getStructureMembers()
        Get the StructureMembers object.
        返回:
        the StructureMembers object.
      • getMembers

        public java.util.List<StructureMembers.Member> getMembers()
        Get a list of structure members.
        返回:
        the structure members.
      • getStructureMemberNames

        public java.util.List<java.lang.String> getStructureMemberNames()
        Get a list structure member names.
        返回:
        the structure members.
      • findMember

        public StructureMembers.Member findMember​(java.lang.String memberName)
        Find a member by its name.
        参数:
        memberName - find member with this name
        返回:
        StructureMembers.Member matching the name, or null if not found
      • getSizeBytes

        public long getSizeBytes()
        从类复制的说明: Array
        Get the total number of bytes in the array.
        覆盖:
        getSizeBytes 在类中 Array
        返回:
        total number of bytes in the array
      • getObject

        public java.lang.Object getObject​(Index i)
        Get the index-th StructureData of this ArrayStructure.
        指定者:
        getObject 在类中 Array
        参数:
        i - which one to get, specified by an Index.
        返回:
        object of type StructureData.
      • setObject

        public void setObject​(Index i,
                              java.lang.Object value)
        Set one of the StructureData of this ArrayStructure.
        指定者:
        setObject 在类中 Array
        参数:
        i - which one to set, specified by an Index.
        value - must be type StructureData.
      • getObject

        public java.lang.Object getObject​(int index)
        Get the index-th StructureData of this ArrayStructure.
        指定者:
        getObject 在类中 Array
        参数:
        index - which one to get, specified by an integer.
        返回:
        object of type StructureData.
      • setObject

        public void setObject​(int index,
                              java.lang.Object value)
        Set the index-th StructureData of this ArrayStructure.
        指定者:
        setObject 在类中 Array
        参数:
        index - which one to set.
        value - must be type StructureData.
      • getStructureData

        public StructureData getStructureData​(Index i)
        Get the index-th StructureData of this ArrayStructure.
        参数:
        i - which one to get, specified by an Index.
        返回:
        object of type StructureData.
      • getStructureData

        public StructureData getStructureData​(int index)
        Get the index-th StructureData of this ArrayStructure.
        参数:
        index - which one to get, specified by an integer.
        返回:
        object of type StructureData.
      • getStorage

        public java.lang.Object getStorage()
        从类复制的说明: Array
        Get underlying primitive array storage. Exposed for efficiency, use at your own risk.
        指定者:
        getStorage 在类中 Array
        返回:
        underlying primitive array storage
      • getStructureSize

        public int getStructureSize()
        Get the size of each StructureData object in bytes.
        返回:
        the size of each StructureData object in bytes.
      • getArray

        public Array getArray​(int recno,
                              StructureMembers.Member m)
        Get member data of any type for a specific record as an Array. This may avoid the overhead of creating the StructureData object, but is equivilent to getStructure(recno).getArray( Member m).
        参数:
        recno - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();
        m - get data from this StructureMembers.Member.
        返回:
        Array values.
      • setMemberArray

        public void setMemberArray​(StructureMembers.Member m,
                                   Array memberArray)
        Set data for one member, over all structures. This is used by VariableDS to do scale/offset.
        参数:
        m - set data for this StructureMembers.Member.
        memberArray - Array values.
      • extractMemberArray

        public Array extractMemberArray​(StructureMembers.Member m)
                                 throws java.io.IOException
        Extract data for one member, over all structures.
        参数:
        m - get data from this StructureMembers.Member.
        返回:
        Array values.
        抛出:
        java.io.IOException - on read error (only happens for Sequences, otherwise data is already read)
      • getScalarObject

        public java.lang.Object getScalarObject​(int recno,
                                                StructureMembers.Member m)
        Get member data array of any type as an Object, eg, Float, Double, String, StructureData etc.
        参数:
        recno - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();
        m - get data from this StructureMembers.Member.
        返回:
        value as Float, Double, etc..
      • convertScalarFloat

        public float convertScalarFloat​(int recnum,
                                        StructureMembers.Member m)
        Get scalar value as a float, with conversion as needed. Underlying type must be convertible to float.
        参数:
        recnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();
        m - member Variable.
        返回:
        scalar float value
        抛出:
        ForbiddenConversionException - if not convertible to float.
      • convertScalarDouble

        public double convertScalarDouble​(int recnum,
                                          StructureMembers.Member m)
        Get scalar value as a double, with conversion as needed. Underlying type must be convertible to double.
        参数:
        recnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();
        m - member Variable.
        返回:
        scalar double value
        抛出:
        ForbiddenConversionException - if not convertible to double.
      • convertScalarInt

        public int convertScalarInt​(int recnum,
                                    StructureMembers.Member m)
        Get scalar value as an int, with conversion as needed. Underlying type must be convertible to int.
        参数:
        recnum - get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();
        m - member Variable.
        返回:
        scalar double value
        抛出:
        ForbiddenConversionException - if not convertible to double.
      • getScalarDouble

        public double getScalarDouble​(int recnum,
                                      StructureMembers.Member m)
        Get scalar member data of type double.
        参数:
        recnum - 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.
        返回:
        scalar double value
      • getJavaArrayDouble

        public double[] getJavaArrayDouble​(int recnum,
                                           StructureMembers.Member m)
        Get member data of type double as a 1D array. The member data may be any rank.
        参数:
        recnum - 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.
        返回:
        double[]
      • getScalarFloat

        public float getScalarFloat​(int recnum,
                                    StructureMembers.Member m)
        Get scalar member data of type float.
        参数:
        recnum - 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.
        返回:
        scalar double value
      • getJavaArrayFloat

        public float[] getJavaArrayFloat​(int recnum,
                                         StructureMembers.Member m)
        Get member data of type float as a 1D array.
        参数:
        recnum - 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.
        返回:
        float[]
      • getScalarByte

        public byte getScalarByte​(int recnum,
                                  StructureMembers.Member m)
        Get scalar member data of type byte.
        参数:
        recnum - 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.
        返回:
        scalar double value
      • getJavaArrayByte

        public byte[] getJavaArrayByte​(int recnum,
                                       StructureMembers.Member m)
        Get member data of type byte as a 1D array.
        参数:
        recnum - 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.
        返回:
        byte[]
      • getScalarShort

        public short getScalarShort​(int recnum,
                                    StructureMembers.Member m)
        Get scalar member data of type short.
        参数:
        recnum - 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.
        返回:
        scalar double value
      • getJavaArrayShort

        public short[] getJavaArrayShort​(int recnum,
                                         StructureMembers.Member m)
        Get member data of type short as a 1D array.
        参数:
        recnum - 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.
        返回:
        short[]
      • getScalarInt

        public int getScalarInt​(int recnum,
                                StructureMembers.Member m)
        Get scalar member data of type int.
        参数:
        recnum - 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.
        返回:
        scalar double value
      • getJavaArrayInt

        public int[] getJavaArrayInt​(int recnum,
                                     StructureMembers.Member m)
        Get member data of type int as a 1D array.
        参数:
        recnum - 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.
        返回:
        int[]
      • getScalarLong

        public long getScalarLong​(int recnum,
                                  StructureMembers.Member m)
        Get scalar member data of type long.
        参数:
        recnum - 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.
        返回:
        scalar double value
      • getJavaArrayLong

        public long[] getJavaArrayLong​(int recnum,
                                       StructureMembers.Member m)
        Get member data of type long as a 1D array.
        参数:
        recnum - 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.
        返回:
        long[]
      • getScalarChar

        public char getScalarChar​(int recnum,
                                  StructureMembers.Member m)
        Get scalar member data of type char.
        参数:
        recnum - 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.
        返回:
        scalar double value
      • getJavaArrayChar

        public char[] getJavaArrayChar​(int recnum,
                                       StructureMembers.Member m)
        Get member data of type char as a 1D array.
        参数:
        recnum - 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.
        返回:
        char[]
      • getScalarString

        public java.lang.String getScalarString​(int recnum,
                                                StructureMembers.Member m)
        Get member data of type String or char.
        参数:
        recnum - 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.
        返回:
        scalar String value
      • getJavaArrayString

        public java.lang.String[] getJavaArrayString​(int recnum,
                                                     StructureMembers.Member m)
        Get member data of type String as a 1D array.
        参数:
        recnum - 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.
        返回:
        String[]
      • getScalarStructure

        public StructureData getScalarStructure​(int recnum,
                                                StructureMembers.Member m)
        Get member data of type Structure.
        参数:
        recnum - 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.
        返回:
        scalar StructureData
      • getArrayStructure

        public ArrayStructureBak getArrayStructure​(int recnum,
                                                   StructureMembers.Member m)
        Get member data of type array of Structure.
        参数:
        recnum - 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.
        返回:
        nested ArrayStructure.
      • getArraySequence

        public ArraySequence getArraySequence​(int recnum,
                                              StructureMembers.Member m)
        Get member data of type ArraySequence
        参数:
        recnum - 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.
        返回:
        nested ArrayStructure.
      • getArrayObject

        public ArrayObject getArrayObject​(int recnum,
                                          StructureMembers.Member m)
        Get member data of type ArrayObject
        参数:
        recnum - 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.
        返回:
        ArrayObject.
      • showInternal

        public void showInternal​(java.util.Formatter f,
                                 Indent indent)
      • showInternalMembers

        public void showInternalMembers​(java.util.Formatter f,
                                        Indent indent)
      • createView

        public Array createView​(Index index)
        从类复制的说明: Array
        create new Array with given Index and the same backing store
        指定者:
        createView 在类中 Array
        参数:
        index - use this Index
        返回:
        a view of the Array using the given Index
      • sectionNoReduce

        public Array sectionNoReduce​(java.util.List<Range> ranges)
                              throws InvalidRangeException
        从类复制的说明: Array
        Create a new Array as a subsection of this Array, without rank reduction. No data is moved, so the new Array references the same backing store as the original. Vlen is transferred over unchanged.
        覆盖:
        sectionNoReduce 在类中 Array
        参数:
        ranges - list of Ranges that specify the array subset. Must be same rank as original Array. A particular Range: 1) may be a subset, or 2) may be null, meaning use entire Range.
        返回:
        the new Array
        抛出:
        InvalidRangeException - if ranges is invalid
      • copy

        public Array copy()
        DO NOT USE, throws UnsupportedOperationException
        覆盖:
        copy 在类中 Array
        返回:
        the new Array
      • getDouble

        public double getDouble​(Index i)
        DO NOT USE, throw ForbiddenConversionException
        指定者:
        getDouble 在类中 Array
        参数:
        i - Index with current element set
        返回:
        value at index cast to double if necessary.
      • setDouble

        public void setDouble​(Index i,
                              double value)
        DO NOT USE, throw ForbiddenConversionException
        指定者:
        setDouble 在类中 Array
        参数:
        i - Index with current element set
        value - the new value; cast to underlying data type if necessary.
      • getFloat

        public float getFloat​(Index i)
        DO NOT USE, throw ForbiddenConversionException
        指定者:
        getFloat 在类中 Array
        参数:
        i - Index with current element set
        返回:
        value at index cast to float if necessary.
      • setFloat

        public void setFloat​(Index i,
                             float value)
        DO NOT USE, throw ForbiddenConversionException
        指定者:
        setFloat 在类中 Array
        参数:
        i - Index with current element set
        value - the new value; cast to underlying data type if necessary.
      • getLong

        public long getLong​(Index i)
        DO NOT USE, throw ForbiddenConversionException
        指定者:
        getLong 在类中 Array
        参数:
        i - Index with current element set
        返回:
        value at index cast to long if necessary.
      • setLong

        public void setLong​(Index i,
                            long value)
        DO NOT USE, throw ForbiddenConversionException
        指定者:
        setLong 在类中 Array
        参数:
        i - Index with current element set
        value - the new value; cast to underlying data type if necessary.
      • getInt

        public int getInt​(Index i)
        DO NOT USE, throw ForbiddenConversionException
        指定者:
        getInt 在类中 Array
        参数:
        i - Index with current element set
        返回:
        value at index cast to int if necessary.
      • setInt

        public void setInt​(Index i,
                           int value)
        DO NOT USE, throw ForbiddenConversionException
        指定者:
        setInt 在类中 Array
        参数:
        i - Index with current element set
        value - the new value; cast to underlying data type if necessary.
      • getShort

        public short getShort​(Index i)
        DO NOT USE, throw ForbiddenConversionException
        指定者:
        getShort 在类中 Array
        参数:
        i - Index with current element set
        返回:
        value at index cast to short if necessary.
      • setShort

        public void setShort​(Index i,
                             short value)
        DO NOT USE, throw ForbiddenConversionException
        指定者:
        setShort 在类中 Array
        参数:
        i - Index with current element set
        value - the new value; cast to underlying data type if necessary.
      • getByte

        public byte getByte​(Index i)
        DO NOT USE, throw ForbiddenConversionException
        指定者:
        getByte 在类中 Array
        参数:
        i - Index with current element set
        返回:
        value at index cast to float if necessary.
      • setByte

        public void setByte​(Index i,
                            byte value)
        DO NOT USE, throw ForbiddenConversionException
        指定者:
        setByte 在类中 Array
        参数:
        i - Index with current element set
        value - the new value; cast to underlying data type if necessary.
      • getBoolean

        public boolean getBoolean​(Index i)
        DO NOT USE, throw ForbiddenConversionException
        指定者:
        getBoolean 在类中 Array
        参数:
        i - Index with current element set
        返回:
        value at index cast to boolean if necessary.
      • setBoolean

        public void setBoolean​(Index i,
                               boolean value)
        DO NOT USE, throw ForbiddenConversionException
        指定者:
        setBoolean 在类中 Array
        参数:
        i - Index with current element set
        value - the new value; cast to underlying data type if necessary.
      • getString

        public java.lang.String getString​(Index i)
        not legal, throw ForbiddenConversionException
        指定者:
        getString 在类中 Array
        参数:
        i - Index with current element set
        返回:
        value at index cast to string if necessary.
      • setString

        public void setString​(Index i,
                              java.lang.String value)
        not legal, throw ForbiddenConversionException
        指定者:
        setString 在类中 Array
        参数:
        i - Index with current element set
        value - the new value; cast to underlying data type if necessary.
      • getComplex

        public Complex getComplex​(Index i)
        not legal, throw ForbiddenConversionException
        指定者:
        getComplex 在类中 Array
        参数:
        i - Index with current element set
        返回:
        value at index cast to boolean if necessary.
      • setComplex

        public void setComplex​(Index i,
                               Complex value)
        not legal, throw ForbiddenConversionException
        指定者:
        setComplex 在类中 Array
        参数:
        i - Index with current element set
        value - the new value; cast to underlying data type if necessary.
      • getChar

        public char getChar​(Index i)
        DO NOT USE, throw ForbiddenConversionException
        指定者:
        getChar 在类中 Array
        参数:
        i - Index with current element set
        返回:
        value at index cast to char if necessary.
      • setChar

        public void setChar​(Index i,
                            char value)
        DO NOT USE, throw ForbiddenConversionException
        指定者:
        setChar 在类中 Array
        参数:
        i - Index with current element set
        value - the new value; cast to underlying data type if necessary.
      • getDouble

        public double getDouble​(int index)
        指定者:
        getDouble 在类中 Array
      • setDouble

        public void setDouble​(int index,
                              double value)
        指定者:
        setDouble 在类中 Array
      • getFloat

        public float getFloat​(int index)
        指定者:
        getFloat 在类中 Array
      • setFloat

        public void setFloat​(int index,
                             float value)
        指定者:
        setFloat 在类中 Array
      • getLong

        public long getLong​(int index)
        指定者:
        getLong 在类中 Array
      • setLong

        public void setLong​(int index,
                            long value)
        指定者:
        setLong 在类中 Array
      • getInt

        public int getInt​(int index)
        指定者:
        getInt 在类中 Array
      • setInt

        public void setInt​(int index,
                           int value)
        指定者:
        setInt 在类中 Array
      • getShort

        public short getShort​(int index)
        指定者:
        getShort 在类中 Array
      • setShort

        public void setShort​(int index,
                             short value)
        指定者:
        setShort 在类中 Array
      • getByte

        public byte getByte​(int index)
        指定者:
        getByte 在类中 Array
      • setByte

        public void setByte​(int index,
                            byte value)
        指定者:
        setByte 在类中 Array
      • getChar

        public char getChar​(int index)
        指定者:
        getChar 在类中 Array
      • setChar

        public void setChar​(int index,
                            char value)
        指定者:
        setChar 在类中 Array
      • getBoolean

        public boolean getBoolean​(int index)
        指定者:
        getBoolean 在类中 Array
      • setBoolean

        public void setBoolean​(int index,
                               boolean value)
        指定者:
        setBoolean 在类中 Array
      • getString

        public java.lang.String getString​(int index)
        指定者:
        getString 在类中 Array
      • setString

        public void setString​(int index,
                              java.lang.String value)
        指定者:
        setString 在类中 Array