/////////////////////////////////////////////////////////////////////////////
// Copyright (c) 1998, California Institute of Technology.
// ALL RIGHTS RESERVED. U.S. Government Sponsorship acknowledged.
//
// Please read the full copyright notice in the file COPYRIGHT
// in this directory.
//
// Author: Jake Hamby, NASA/Jet Propulsion Laboratory
// Jake.Hamby@jpl.nasa.gov
/////////////////////////////////////////////////////////////////////////////
//
// -- 7/14/99 Modified by: Nathan Potter (ndp@oce.orst.edu)
// Added Support For DInt16, DUInt16, DFloat32.
// Added (and commented out) support for DBoolean.
// -- 7/14/99 ndp
//
/////////////////////////////////////////////////////////////////////////////
package dods.dap;
/**
* A Factory for BaseType objects. The DDS parser must implement this
* interface so that specific instances of <code>DByte</code>, and other
* <code>BaseType</code>s, can be created.
* <p>
* DDS and its parser will use this interface to create specific instances of
* the various data type classes in DODS. There is an implementation of this
* interface which creates instances of the <code>DByte</code>, etc. classes.
* If a new set of classes are defined (e.g. <code>NC_Byte</code>, etc.) this
* interface should be implemented for those classes such that the methods
* return instances of the appropriate types.
*
* @version $Revision: 1.3 $
* @author jehamby
* @see BaseType
* @see DefaultFactory
* @see DDS
*/
public interface BaseTypeFactory {
//------------------------------------
/**
* Construct a new DBoolean.
* @return the new DBoolean
*/
// public DBoolean newDBoolean();
/**
* Construct a new DBoolean with name n.
* @param n the variable name
* @return the new DBoolean
*/
// public DBoolean newDBoolean(String n);
//------------------------------------
/**
* Construct a new DByte.
* @return the new DByte
*/
public DByte newDByte();
/**
* Construct a new DByte with name n.
* @param n the variable name
* @return the new DByte
*/
public DByte newDByte(String n);
//------------------------------------
/**
* Construct a new DInt16.
* @return the new DInt16
*/
public DInt16 newDInt16();
/**
* Construct a new DInt16 with name n.
* @param n the variable name
* @return the new DInt16
*/
public DInt16 newDInt16(String n);
//------------------------------------
/**
* Construct a new DUInt16.
* @return the new DUInt16
*/
public DUInt16 newDUInt16();
/**
* Construct a new DUInt16 with name n.
* @param n the variable name
* @return the new DUInt16
*/
public DUInt16 newDUInt16(String n);
//------------------------------------
/**
* Construct a new DInt32.
* @return the new DInt32
*/
public DInt32 newDInt32();
/**
* Construct a new DInt32 with name n.
* @param n the variable name
* @return the new DInt32
*/
public DInt32 newDInt32(String n);
//------------------------------------
/**
* Construct a new DUInt32.
* @return the new DUInt32
*/
public DUInt32 newDUInt32();
/**
* Construct a new DUInt32 with name n.
* @param n the variable name
* @return the new DUInt32
*/
public DUInt32 newDUInt32(String n);
//------------------------------------
/**
* Construct a new DFloat32.
* @return the new DFloat32
*/
public DFloat32 newDFloat32();
/**
* Construct a new DFloat32 with name n.
* @param n the variable name
* @return the new DFloat32
*/
public DFloat32 newDFloat32(String n);
//------------------------------------
/**
* Construct a new DFloat64.
* @return the new DFloat64
*/
public DFloat64 newDFloat64();
/**
* Construct a new DFloat64 with name n.
* @param n the variable name
* @return the new DFloat64
*/
public DFloat64 newDFloat64(String n);
//------------------------------------
/**
* Construct a new DString.
* @return the new DString
*/
public DString newDString();
/**
* Construct a new DString with name n.
* @param n the variable name
* @return the new DString
*/
public DString newDString(String n);
//------------------------------------
/**
* Construct a new DURL.
* @return the new DURL
*/
public DURL newDURL();
/**
* Construct a new DURL with name n.
* @param n the variable name
* @return the new DURL
*/
public DURL newDURL(String n);
//------------------------------------
/**
* Construct a new DArray.
* @return the new DArray
*/
public DArray newDArray();
/**
* Construct a new DArray with name n.
* @param n the variable name
* @return the new DArray
*/
public DArray newDArray(String n);
//------------------------------------
/**
* Construct a new DList.
* @return the new DList
*/
public DList newDList();
/**
* Construct a new DList with name n.
* @param n the variable name
* @return the new DList
*/
public DList newDList(String n);
//------------------------------------
/**
* Construct a new DGrid.
* @return the new DGrid
*/
public DGrid newDGrid();
/**
* Construct a new DGrid with name n.
* @param n the variable name
* @return the new DGrid
*/
public DGrid newDGrid(String n);
//------------------------------------
/**
* Construct a new DStructure.
* @return the new DStructure
*/
public DStructure newDStructure();
/**
* Construct a new DStructure with name n.
* @param n the variable name
* @return the new DStructure
*/
public DStructure newDStructure(String n);
//------------------------------------
/**
* Construct a new DSequence.
* @return the new DSequence
*/
public DSequence newDSequence();
/**
* Construct a new DSequence with name n.
* @param n the variable name
* @return the new DSequence
*/
public DSequence newDSequence(String n);
}