CDM :: Dap4 Interactions occur in two ways.

1. Server side.
The goal is to wrap a NetcdfDataset object as a DSP
so it can be written using the DAP4 protocol.
The relevant classes are:
    thredds.server.dap4.ThreddsDSP.java (in /tds/src/main/java/thredds/server/dap4 for access reasons)
    dap4.cdm.dsp.CDMDSP.java
    dap4.cdm.dsp.CDMDataCompoundArray.java
    dap4.cdm.dsp.CDMDataDataset.java
    dap4.cdm.dsp.CDMDataRecord.java
    dap4.cdm.dsp.CDMDataset.java
    dap4.cdm.dsp.CDMDataStructure.java
    dap4.cdm.dsp.CDMDataVariable.java
    dap4.cdm.dsp.CDMDataAtomic.java

2. Client Side
The goal is to wrap a D4DSP to make it look like a CDM NetcdfDataset.
The D4DSP itself wraps the serialized data of the DAP4 protocol.
The relevant classes are as follows:
    dap4.cdm.nc2.DapNetcdfDataset.java
    dap4.cdm.nc2.DMRToCDM.java
    dap4.cdm.nc2.DataToCDM.java
    dap4.cdm.nc2.CDMCompiler.java
    dap4.cdm.nc2.CDMArray.java
    dap4.cdm.nc2.CDMArrayAtomic.java
    dap4.cdm.nc2.CDMArrayDelegate.java
    dap4.cdm.nc2.CDMArraySequence.java
    dap4.cdm.nc2.CDMArrayStructure.java

The following are shared Utilities:
    CDMUtil.java
    NodeMap.java

What about?
    CDMDataFactory.java
