## dods.dap
Class DConnect

    java.lang.Object
      dods.dap.DConnect

public class DConnect
extends Object

This class provides support for common DODS client-side operations such as dereferencing a DODS URL, communicating network activity status to the user and reading local DODS objects.

Unlike its C++ counterpart, this class does not store instances of the DAS, DDS, etc. objects. Rather, the methods `getDAS`, etc. return instances of those objects.

Constructor Summary
`DConnect(InputStream is)` Creates an instance bound to an already open `InputStream`.
`DConnect(String urlString)` Creates an instance bound to url which accepts compressed documents.
`DConnect(String urlString, boolean acceptDeflate)` Creates an instance bound to url.

Method Summary
`String` `CE()` Returns the constraint expression supplied with the URL given to the constructor.
`DAS` `getDAS()` Returns the DAS object from the dataset referenced by this object's URL.
`DataDDS` `getData(StatusUI statusUI)` Return the data object with no local constraint expression.
`DataDDS` `getData(String CE, StatusUI statusUI)` Returns the `Data object' from the dataset referenced by this object's URL given the constraint expression CE.
`DataDDS` `getData(String CE, StatusUI statusUI, BaseTypeFactory btf)` Returns the `Data object' from the dataset referenced by this object's URL given the constraint expression CE.
`DataDDS` `getDataFromUrl(URL url, StatusUI statusUI, BaseTypeFactory btf)`
`DDS` `getDDS()` Returns the DDS object from the dataset referenced by this object's URL.
`ServerVersion` `getServerVersion()` Returns the `ServerVersion` of the last connection.
`boolean` `isLocal()` Returns whether a file name or `InputStream` is being used instead of a URL.
`String` `URL()` Returns the URL supplied to the constructor.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### DConnect

    public DConnect(String urlString)
             throws FileNotFoundException

  Creates an instance bound to url which accepts compressed documents.

Parameters:
  `urlString` - connect to this URL.
Throws:
  `FileNotFoundException` - thrown if `urlString` is not a valid URL, or a filename which exists on the system.
See Also:
  `DConnect(String, boolean)`

### DConnect

    public DConnect(String urlString,
                    boolean acceptDeflate)
             throws FileNotFoundException

  Creates an instance bound to url. If `acceptDeflate` is true then HTTP Request headers will indicate to servers that this client can accept compressed documents.

Parameters:
  `urlString` - Connect to this URL. If urlString is not a valid URL, it is assumed to be a filename, which is opened.
  `acceptDeflate` - true if this client can accept responses encoded with deflate.
Throws:
  `FileNotFoundException` - thrown if `urlString` is not a valid URL, or a filename which exists on the system.

### DConnect

    public DConnect(InputStream is)

  Creates an instance bound to an already open `InputStream`.

Parameters:
  `is` - the `InputStream` to open.

Method Detail

### isLocal

    public final boolean isLocal()

  Returns whether a file name or `InputStream` is being used instead of a URL.

  Returns:
    true if a file name or `InputStream` is being used.

### CE

    public final String CE()

  Returns the constraint expression supplied with the URL given to the constructor. If no CE was given this returns an empty `String`.

  Note that the CE supplied to one of this object's constructors is "sticky"; it will be used with every data request made with this object. The CE passed to `getData`, however, is not sticky; it is used only for that specific request. This method returns the sticky CE.

  Returns:
    the constraint expression associated with this connection.

### URL

    public final String URL()

  Returns the URL supplied to the constructor. If the URL contained a constraint expression that is not returned.

  Returns:
    the URL of this connection.

### getDAS

    public DAS getDAS()
               throws MalformedURLException,
                      IOException,
                      ParseException,
                      DASException,
                      DODSException

  Returns the DAS object from the dataset referenced by this object's URL. The DAS object is referred to by appending `.das' to the end of a DODS URL.

  Returns:
    the DAS associated with the referenced dataset.
  Throws:
    `MalformedURLException` - if the URL given to the constructor has an error
    `IOException` - if an error connecting to the remote server
    `ParseException` - if the DAS parser returned an error
    `DASException` - on an error constructing the DAS
    `DODSException` - if an error returned by the remote server

### getDDS

    public DDS getDDS()
               throws MalformedURLException,
                      IOException,
                      ParseException,
                      DDSException,
                      DODSException

  Returns the DDS object from the dataset referenced by this object's URL. The DDS object is referred to by appending `.dds' to the end of a DODS URL.

  Returns:
    the DDS associated with the referenced dataset.
  Throws:
    `MalformedURLException` - if the URL given to the constructor has an error
    `IOException` - if an error connecting to the remote server
    `ParseException` - if the DDS parser returned an error
    `DDSException` - on an error constructing the DDS
    `DODSException` - if an error returned by the remote server

### getData

    public DataDDS getData(String CE,
                           StatusUI statusUI,
                           BaseTypeFactory btf)
                    throws MalformedURLException,
                           IOException,
                           ParseException,
                           DDSException,
                           DODSException

  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.

  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.

  Parameters:
    `CE` - The constraint expression to be applied to this request by the server. This is combined with any CE given in the constructor.
    `statusUI` - the `StatusUI` object to use for GUI updates and user cancellation notification (may be null).
  Returns:
    The `DataDDS` 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
    `IOException` - if any error connecting to the remote server
    `ParseException` - if the DDS parser returned an error
    `DDSException` - on an error constructing the DDS
    `DODSException` - if any error returned by the remote server

### getDataFromUrl

    public DataDDS getDataFromUrl(URL url,
                                  StatusUI statusUI,
                                  BaseTypeFactory btf)
                           throws MalformedURLException,
                                  IOException,
                                  ParseException,
                                  DDSException,
                                  DODSException

  Throws:
    `MalformedURLException`
    `IOException`
    `ParseException`
    `DDSException`
    `DODSException`

### getData

    public DataDDS getData(String CE,
                           StatusUI statusUI)
                    throws MalformedURLException,
                           IOException,
                           ParseException,
                           DDSException,
                           DODSException

  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.

  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.

  Parameters:
    `CE` - The constraint expression to be applied to this request by the server. This is combined with any CE given in the constructor.
    `statusUI` - the `StatusUI` object to use for GUI updates and user cancellation notification (may be null).
  Returns:
    The `DataDDS` 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
    `IOException` - if any error connecting to the remote server
    `ParseException` - if the DDS parser returned an error
    `DDSException` - on an error constructing the DDS
    `DODSException` - if any error returned by the remote server

### getData

    public final DataDDS getData(StatusUI statusUI)
                          throws MalformedURLException,
                                 IOException,
                                 ParseException,
                                 DDSException,
                                 DODSException

  Return the data object with no local constraint expression. Same as `getData("", statusUI)`.

  Parameters:
    `statusUI` - the `StatusUI` object to use for GUI updates and user cancellation notification (may be null).
  Returns:
    The `DataDDS` object that results from applying this object's sticky CE, if any, on the referenced dataset.
  Throws:
    `MalformedURLException` - if the URL given to the constructor has an error
    `IOException` - if any error connecting to the remote server
    `ParseException` - if the DDS parser returned an error
    `DDSException` - on an error constructing the DDS
    `DODSException` - if any error returned by the remote server
  See Also:
    `getData(String, StatusUI)`

### getServerVersion

    public final ServerVersion getServerVersion()

  Returns the `ServerVersion` of the last connection.

  Returns:
    the `ServerVersion` of the last connection.