cdm/src/main/java/ucar/nc2/Variable.java
public long readToByteChannel(Section section, WritableByteChannel wbc) throws IOException, InvalidRangeException {
    if ((ncfile == null) || hasCachedData())
      return IospHelper.copyToByteChannel(read(section), wbc);

    return ncfile.readToByteChannel(this, section, wbc);
  }
public long readToByteChannel(Section section, WritableByteChannel wbc) throws IOException, InvalidRangeException {
    if ((ncfile == null) || hasCachedData())
      return IospHelper.copyToByteChannel(read(section), wbc);

    return ncfile.readToByteChannel(this, section, wbc);
  }
public long readToByteChannel ( Section section , WritableByteChannel wbc ) throws IOException , InvalidRangeException { if ( ( ncfile == null ) || hasCachedData ( ) ) return IospHelper . copyToByteChannel ( read ( section ) , wbc ) ; return ncfile . readToByteChannel ( this , section , wbc ) ; }
/* structure-member Variable;  section has a Range for each array in the parent
stuctures(s) and for the Variable.
private Array _readMemberData(List<Range> section, boolean flatten) throws IOException, InvalidRangeException {
/*Variable useVar = (ioVar != null) ? ioVar : this;
NetcdfFile useFile = (ncfileIO != null) ? ncfileIO : ncfile;
return useFile.readMemberData(useVar, section, flatten);
}
/ * structure - member Variable ; section has a Range for each array in the parent stuctures ( s ) and for the Variable . private Array _readMemberData ( List<Range > section boolean flatten ) throws IOException InvalidRangeException { / * Variable useVar = ( ioVar ! = null ) ? ioVar : this ; NetcdfFile useFile = ( ncfileIO ! = null ) ? ncfileIO : ncfile ; return useFile . readMemberData ( useVar section flatten ) ; }