cdm/src/main/java/ucar/ma2/ArrayStructure.java
public Object getScalarObject(int recno, StructureMembers.Member m) {
    DataType dataType = m.getDataType();

    if (dataType == DataType.DOUBLE) {
      return getScalarDouble(recno, m);

    } else if (dataType == DataType.FLOAT) {
      return getScalarFloat(recno, m);

    } else if (dataType.getPrimitiveClassType() == byte.class) {
      return getScalarByte(recno, m);

    } else if (dataType.getPrimitiveClassType() == short.class) {
      return getScalarShort(recno, m);

    } else if (dataType.getPrimitiveClassType() == int.class) {
      return getScalarInt(recno, m);

    } else if (dataType.getPrimitiveClassType() == long.class) {
      return getScalarLong(recno, m);

    } else if (dataType == DataType.CHAR) {
      return getScalarString(recno, m);

    } else if (dataType == DataType.STRING) {
      return getScalarString(recno, m);

    } else if (dataType == DataType.STRUCTURE) {
      return getScalarStructure(recno, m);

    } else if (dataType == DataType.OPAQUE) {
      ArrayObject data = (ArrayObject) m.getDataArray();
      return data.getObject(recno * m.getSize()); // LOOK ?? 
    }

    throw new RuntimeException("Dont have implementation for " + dataType);
  }
public Object getScalarObject(int recno, StructureMembers.Member m) {
    DataType dataType = m.getDataType();

    if (dataType == DataType.DOUBLE) {
      return getScalarDouble(recno, m);

    } else if (dataType == DataType.FLOAT) {
      return getScalarFloat(recno, m);

    } else if (dataType.getPrimitiveClassType() == byte.class) {
      return getScalarByte(recno, m);

    } else if (dataType.getPrimitiveClassType() == short.class) {
      return getScalarShort(recno, m);

    } else if (dataType.getPrimitiveClassType() == int.class) {
      return getScalarInt(recno, m);

    } else if (dataType.getPrimitiveClassType() == long.class) {
      return getScalarLong(recno, m);

    } else if (dataType == DataType.CHAR) {
      return getScalarString(recno, m);

    } else if (dataType == DataType.STRING) {
      return getScalarString(recno, m);

    } else if (dataType == DataType.STRUCTURE) {
      return getScalarStructure(recno, m);

    } else if (dataType == DataType.OPAQUE) {
      ArrayObject data = (ArrayObject) m.getDataArray();
      return data.getObject(recno * m.getSize()); // LOOK ?? 
    }

    throw new RuntimeException("Dont have implementation for " + dataType);
  }
public Object getScalarObject ( int recno , StructureMembers . Member m ) { DataType dataType = m . getDataType ( ) ; if ( dataType == DataType . DOUBLE ) { return getScalarDouble ( recno , m ) ; } else if ( dataType == DataType . FLOAT ) { return getScalarFloat ( recno , m ) ; } else if ( dataType . getPrimitiveClassType ( ) == byte . class ) { return getScalarByte ( recno , m ) ; } else if ( dataType . getPrimitiveClassType ( ) == short . class ) { return getScalarShort ( recno , m ) ; } else if ( dataType . getPrimitiveClassType ( ) == int . class ) { return getScalarInt ( recno , m ) ; } else if ( dataType . getPrimitiveClassType ( ) == long . class ) { return getScalarLong ( recno , m ) ; } else if ( dataType == DataType . CHAR ) { return getScalarString ( recno , m ) ; } else if ( dataType == DataType . STRING ) { return getScalarString ( recno , m ) ; } else if ( dataType == DataType . STRUCTURE ) { return getScalarStructure ( recno , m ) ; } else if ( dataType == DataType . OPAQUE ) { ArrayObject data = ( ArrayObject ) m . getDataArray ( ) ; return data . getObject ( recno * m . getSize ( ) ) ; // LOOK ?? 
 } throw new RuntimeException ( "Dont have implementation for " + dataType ) ; }
Get member data array of any type as an Object, eg, Float, Double, String, StructureData etc.

@param recno get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize();
@param m     get data from this StructureMembers.Member.
@return value as Float, Double, etc..
Get member data array of any type as an Object eg Float Double String StructureData etc .