DataDDS readDataDDSfromServer(String CE) throws IOException, opendap.dap.DAP2Exception
  {
    if (debugServerCall) System.out.println("DODSNetcdfFile.readDataDDSfromServer = <" + CE + ">");

    long start = 0;
    if (debugTime) start = System.currentTimeMillis();

    if (!CE.startsWith("?"))
      CE = "?" + CE;
    DataDDS data;
    synchronized (this) {
      data = dodsConnection.getData(CE, null);
    }
    if (debugTime)
      System.out.println("DODSNetcdfFile.readDataDDSfromServer took = " + (System.currentTimeMillis() - start) / 1000.0);

    if (debugDataResult) {
      System.out.println(" dataDDS return:");
      data.print(System.out);
    }

    return data;
  }
DataDDS readDataDDSfromServer ( String CE ) throws IOException , opendap . dap . DAP2Exception { if ( debugServerCall ) System . out . println ( "DODSNetcdfFile.readDataDDSfromServer = <" + CE + ">" ) ; long start = 0 ; if ( debugTime ) start = System . currentTimeMillis ( ) ; if ( ! CE . startsWith ( "?" ) ) CE = "?" + CE ; DataDDS data ; synchronized ( this ) { data = dodsConnection . getData ( CE , null ) ; } if ( debugTime ) System . out . println ( "DODSNetcdfFile.readDataDDSfromServer took = " + ( System . currentTimeMillis ( ) - start ) / 1000.0 ) ; if ( debugDataResult ) { System . out . println ( " dataDDS return:" ) ; data . print ( System . out ) ; } return data ; }
This does the actual connection to the opendap server and reading of the data.
All data calls go through here so we can add debugging.

@param CE constraint expression; use empty string if none
@return DataDDS
@throws java.io.IOException                on io error
@throws opendap.dap.parsers.ParseException
if error parsing return
@throws opendap.dap.DAP2Exception          if you have otherwise been bad