opendap/src/main/java/opendap/dap/DConnect2.java
public DataDDS getData(String CE, StatusUI statusUI, BaseTypeFactory btf) throws MalformedURLException, IOException,
            ParseException, DDSException, DAP2Exception
    {
        if(CE != null && CE.trim().length() == 0) CE = null;
        DataDDS dds = new DataDDS(ver, btf);
        DataDDSCommand command = new DataDDSCommand(dds, statusUI);
        command.setURL(urlString + (CE == null ? "" : "?" + CE));
        if(filePath != null) { // url is file:
            File dodspath = new File(filePath + ".dods");
            // See if the dods file exists
            if(dodspath.canRead()) {
      /* WARNING: any constraints are ignored in reading the file */
                try (FileInputStream is = new FileInputStream(dodspath)) {
                    command.process(is);
                }
            }
        } else if(stream != null) {
            command.process(stream);
        } else {
            String urls = urlString + ".dods" + (CE == null ? "" : getCompleteCE(CE));
            openConnection(urls, command);
        }
        return command.dds;
    }
public DataDDS getData(String CE, StatusUI statusUI, BaseTypeFactory btf) throws MalformedURLException, IOException,
            ParseException, DDSException, DAP2Exception
    {
        if(CE != null && CE.trim().length() == 0) CE = null;
        DataDDS dds = new DataDDS(ver, btf);
        DataDDSCommand command = new DataDDSCommand(dds, statusUI);
        command.setURL(urlString + (CE == null ? "" : "?" + CE));
        if(filePath != null) { // url is file:
            File dodspath = new File(filePath + ".dods");
            // See if the dods file exists
            if(dodspath.canRead()) {
      /* WARNING: any constraints are ignored in reading the file */
                try (FileInputStream is = new FileInputStream(dodspath)) {
                    command.process(is);
                }
            }
        } else if(stream != null) {
            command.process(stream);
        } else {
            String urls = urlString + ".dods" + (CE == null ? "" : getCompleteCE(CE));
            openConnection(urls, command);
        }
        return command.dds;
    }
Returns the `Data object' from the dataset referenced by this object's
URL given the constraint expression CE. Note that the Data object is
really just a DDS object with data bound to the variables. The DDS will
probably contain fewer variables (and those might have different
types) than in the DDS returned by getDDS() because that method returns
the entire DDS (but without any data) while this method returns
only those variables listed in the projection part of the constraint
expression.
<p>
Note that if CE is an empty String then the entire dataset will be
returned, unless a "sticky" CE has been specified in the constructor.

@param CE       The constraint expression to be applied to this request by the
server.  This is combined with any CE given in the constructor.
@param statusUI the <code>StatusUI</code> object to use for GUI updates
and user cancellation notification (may be null).
@param btf      The <code>BaseTypeFactory</code> to build the member
variables in the DDS with.
@return The <code>DataDDS</code> object that results from applying the
given CE, combined with this object's sticky CE, on the referenced
dataset.
@throws MalformedURLException if the URL given to the constructor
has an error
@throws IOException           if any error connecting to the remote server
@throws ParseException        if the DDS parser returned an error
@throws DDSException          on an error constructing the DDS
@throws DAP2Exception         if any error returned by the remote server