@ Override public Array reallyRead ( Variable client , Section section , CancelTask cancelTask ) throws IOException , InvalidRangeException { if ( section . computeSize ( ) == getSize ( ) ) return _read ( ) ; Array result ; if ( hasCachedData ( ) ) result = super . reallyRead ( client , section , cancelTask ) ; else if ( orgVar != null ) result = orgVar . read ( section ) ; else { throw new IllegalStateException ( "StructureDS has no way to get data" ) ; //Object data = smProxy.getFillValue(getDataType()); //return Array.factoryConstant(dataType.getPrimitiveClassType(), section.getShape(), data); } // do any needed conversions (enum/scale/offset/missing/unsigned, etc) return convert ( result , section ) ; }
section of regular Variable