Package opendap.dap
Class BaseType
- java.lang.Object
-
- opendap.dap.DAPNode
-
- opendap.dap.BaseType
-
- All Implemented Interfaces:
Serializable
,Cloneable
- Direct Known Subclasses:
DConstructor
,DPrimitive
,DVector
public abstract class BaseType extends DAPNode
This abstract class defines the basic data type features for the OPeNDAP data access protocol (DAP) data types. All of the DAP type classes (DFloat64
,DArray
, etc.) subclass it or one of its two abstract descendents,DVector
orDConstructor
. These classes and their methods give a user the capacity to set up sophisticated data types. They do not provide sophisticated ways to access and use this data. On the server side, in many cases, the class instances will have no data in them at all until theserialize
method is called to send data to the client. On the client side, most OPeNDAP application programs will unpack the data promptly into whatever local data structure the programmer deems the most useful. Descendents of this class should implement theClientIO
interface. That interface defines adeserialize
method used by a OPeNDAP client to retrieve the variable's declaration and value(s) from a OPeNDAP server.- See Also:
DDS
,ClientIO
, Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class opendap.dap.DAPNode
DAPNode.CloneMap
-
-
Field Summary
-
Fields inherited from class opendap.dap.DAPNode
_nameClear, _nameEncoded, log
-
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addAttributeAlias(String alias, String attributeName)
void
addAttributeContainer(AttributeTable at)
void
appendAttribute(String clearname, int type, String value)
void
appendAttribute(String clearname, int type, String value, boolean check)
AttributeTable
appendAttributeContainer(String clearname)
void
checkSemantics()
Check semantics.void
checkSemantics(boolean all)
Checks for internal consistency.DAPNode
cloneDAG(DAPNode.CloneMap map)
Returns a clone of thisBaseType
.void
delAttribute(String clearname)
void
delAttribute(String clearname, int i)
int
elementCount()
Returns the number of variables contained in this object.int
elementCount(boolean leaves)
Returns the number of variables contained in this object.Attribute
getAttribute()
Attribute
getAttribute(String clearname)
Enumeration
getAttributeNames()
AttributeTable
getAttributeTable()
String
getLongName()
abstract String
getTypeName()
Returns the OPeNDAP type name of the class instance as aString
.boolean
hasAttributes()
PrimitiveVector
newPrimitiveVector()
Constructs a newPrimitiveVector
object optimized for the particular data type of thisBaseType
.void
printAttributes(OutputStream os)
void
printAttributes(OutputStream os, String pad)
void
printAttributes(PrintWriter pw)
void
printAttributes(PrintWriter pw, String pad)
void
printConstraint(PrintWriter os)
void
printDecl(OutputStream os)
Print the variable's declaration.void
printDecl(OutputStream os, String space)
Print the variable's declaration.void
printDecl(OutputStream os, String space, boolean print_semi)
Print the variable's declaration usingOutputStream
.void
printDecl(OutputStream os, String space, boolean print_semi, boolean constrained)
Print the variable's declaration usingOutputStream
.void
printDecl(PrintWriter os)
Print the variable's declaration.void
printDecl(PrintWriter os, String space)
Print the variable's declaration.void
printDecl(PrintWriter os, String space, boolean print_semi)
Write the variable's declaration in a C-style syntax.void
printDecl(PrintWriter os, String space, boolean print_semi, boolean constrained)
Write the variable's declaration in a C-style syntax.void
printVal(OutputStream os, String space)
Print the variable's value usingOutputStream
.void
printVal(OutputStream os, String space, boolean print_decl_p)
Print the variable's value usingOutputStream
.void
printVal(PrintWriter os, String space)
Print the variable's value.abstract void
printVal(PrintWriter os, String space, boolean print_decl_p)
Prints the value of the variable, with its declaration.void
printXML(OutputStream os)
void
printXML(OutputStream os, String pad)
void
printXML(PrintWriter pw)
void
printXML(PrintWriter pw, String pad)
void
printXML(PrintWriter pw, String pad, boolean constrained)
void
setClearName(String clearname)
Sets the unencoded name of the class instance.-
Methods inherited from class opendap.dap.DAPNode
clone, cloneDAG, getClearName, getEncodedName, getParent, isProject, setEncodedName, setParent, setProject, setProject, setProjected
-
-
-
-
Constructor Detail
-
BaseType
public BaseType()
Constructs a newBaseType
with no name.
-
BaseType
public BaseType(String clearname)
Constructs a newBaseType
with namen
. Name is always assumed to be dap encoded- Parameters:
clearname
- the name of the variable.
-
-
Method Detail
-
setClearName
public void setClearName(String clearname)
Sets the unencoded name of the class instance.- Overrides:
setClearName
in classDAPNode
- Parameters:
clearname
- the unencoded name of the class instance.
-
getTypeName
public abstract String getTypeName()
Returns the OPeNDAP type name of the class instance as aString
.- Returns:
- the OPeNDAP type name of the class instance as a
String
.
-
elementCount
public int elementCount(boolean leaves)
Returns the number of variables contained in this object. For simple and vector type variables, it always returns 1. To count the number of simple-type variable in the variable tree rooted at this variable, setleaves
totrue
.- Parameters:
leaves
- If true, count all the simple types in the `tree' of variables rooted at this variable.- Returns:
- the number of contained variables.
-
elementCount
public final int elementCount()
Returns the number of variables contained in this object. For simple and vector type variables, it always returns 1.- Returns:
- the number of contained variables.
-
printDecl
public void printDecl(PrintWriter os, String space, boolean print_semi, boolean constrained)
Write the variable's declaration in a C-style syntax. This function is used to create textual representation of the Data Descriptor Structure (DDS). See The OPeNDAP User Manual for information about this structure.- Parameters:
os
- ThePrintWriter
on which to print the declaration.space
- Each line of the declaration will begin with the characters in this string. Usually used for leading spaces.print_semi
- a boolean value indicating whether to print a semicolon at the end of the declaration.constrained
- a boolean value indicating whether to print the declartion dependent on the projection information. This is only used by Server side code.- See Also:
DDS
-
printDecl
public void printDecl(PrintWriter os, String space, boolean print_semi)
Write the variable's declaration in a C-style syntax. This function is used to create textual representation of the Data Descriptor Structure (DDS). See The OPeNDAP User Manual for information about this structure.- Parameters:
os
- ThePrintWriter
on which to print the declaration.space
- Each line of the declaration will begin with the characters in this string. Usually used for leading spaces.print_semi
- a boolean value indicating whether to print a semicolon at the end of the declaration.- See Also:
DDS
-
printDecl
public final void printDecl(PrintWriter os, String space)
Print the variable's declaration. Same asprintDecl(os, space, true)
.- Parameters:
os
- ThePrintWriter
on which to print the declaration.space
- Each line of the declaration will begin with the characters in this string. Usually used for leading spaces.- See Also:
DDS.print(PrintWriter)
-
printDecl
public final void printDecl(PrintWriter os)
Print the variable's declaration. Same asprintDecl(os, " ", true)
.- Parameters:
os
- ThePrintWriter
on which to print the declaration.- See Also:
DDS.print(PrintWriter)
-
printDecl
public final void printDecl(OutputStream os, String space, boolean print_semi, boolean constrained)
Print the variable's declaration usingOutputStream
.- Parameters:
os
- TheOutputStream
on which to print the declaration.space
- Each line of the declaration will begin with the characters in this string. Usually used for leading spaces.print_semi
- a boolean value indicating whether to print a semicolon at the end of the declaration.- See Also:
DDS.print(PrintWriter)
-
printDecl
public final void printDecl(OutputStream os, String space, boolean print_semi)
Print the variable's declaration usingOutputStream
.- Parameters:
os
- TheOutputStream
on which to print the declaration.space
- Each line of the declaration will begin with the characters in this string. Usually used for leading spaces.print_semi
- a boolean value indicating whether to print a semicolon at the end of the declaration.- See Also:
DDS.print(PrintWriter)
-
printDecl
public final void printDecl(OutputStream os, String space)
Print the variable's declaration. Same asprintDecl(os, space, true)
.- Parameters:
os
- TheOutputStream
on which to print the declaration.space
- Each line of the declaration will begin with the characters in this string. Usually used for leading spaces.- See Also:
DDS.print(PrintWriter)
-
printDecl
public void printDecl(OutputStream os)
Print the variable's declaration. Same asprintDecl(os, " ", true)
.- Parameters:
os
- TheOutputStream
on which to print the declaration.- See Also:
DDS.print(PrintWriter)
-
printVal
public abstract void printVal(PrintWriter os, String space, boolean print_decl_p)
Prints the value of the variable, with its declaration. This function is primarily intended for debugging OPeNDAP applications and text-based clients such as geturl.- Parameters:
os
- thePrintWriter
on which to print the value.space
- this value is passed to theprintDecl
method, and controls the leading spaces of the output.print_decl_p
- a boolean value controlling whether the variable declaration is printed as well as the value.
-
printVal
public void printVal(PrintWriter os, String space)
Print the variable's value. Same asprintVal(os, space, true)
.- Parameters:
os
- thePrintWriter
on which to print the value.space
- this value is passed to theprintDecl
method, and controls the leading spaces of the output.- See Also:
DataDDS.printVal(PrintWriter)
-
printVal
public void printVal(OutputStream os, String space, boolean print_decl_p)
Print the variable's value usingOutputStream
.- Parameters:
os
- theOutputStream
on which to print the value.space
- this value is passed to theprintDecl
method, and controls the leading spaces of the output.print_decl_p
- a boolean value controlling whether the variable declaration is printed as well as the value.- See Also:
DataDDS.printVal(PrintWriter)
-
printVal
public void printVal(OutputStream os, String space)
Print the variable's value usingOutputStream
.- Parameters:
os
- theOutputStream
on which to print the value.space
- this value is passed to theprintDecl
method, and controls the leading spaces of the output.- See Also:
DataDDS.printVal(PrintWriter)
-
checkSemantics
public void checkSemantics(boolean all) throws BadSemanticsException
Checks for internal consistency. This is important to check for complex constructor classes. For example, anDInt32
instance would return false if it had no name defined. ADGrid
instance might return false for more complex reasons, such as having Map arrays of the wrong size or shape. This method is used by theDDS
class, and will rarely, if ever, be explicitly called by a OPeNDAP application program. A variable must pass this test before it is sent, but there may be many other stages in a retrieve operation where it would fail.- Parameters:
all
- For complex constructor types (DGrid
,DSequence
,DStructure
), this flag indicates whether to check the semantics of the member variables, too.- Throws:
BadSemanticsException
- if semantics are bad, explains why.- See Also:
DDS.checkSemantics(boolean)
-
checkSemantics
public final void checkSemantics() throws BadSemanticsException
Check semantics. Same ascheckSemantics(false)
.- Throws:
BadSemanticsException
- if semantics are bad, explains why.- See Also:
checkSemantics(boolean)
-
newPrimitiveVector
public PrimitiveVector newPrimitiveVector()
Constructs a newPrimitiveVector
object optimized for the particular data type of thisBaseType
. For example, aDByte
class would create a newBytePrimitiveVector
in this call. This allows for a very optimized, yet type-safe, implementation ofDVector
functionality. For non-primitive types, such asDArray
,DGrid
,DSequence
, andDStructure
, the default implementation returns aBaseTypePrimitiveVector
object which can deserialize an array of complex types.- Returns:
- a new
PrimitiveVector
object for the variable type.
-
getLongName
public String getLongName()
-
hasAttributes
public boolean hasAttributes()
-
getAttribute
public Attribute getAttribute()
-
getAttributeTable
public AttributeTable getAttributeTable()
-
addAttributeAlias
public void addAttributeAlias(String alias, String attributeName) throws DASException
- Throws:
DASException
-
appendAttribute
public void appendAttribute(String clearname, int type, String value, boolean check) throws DASException
- Throws:
DASException
-
appendAttribute
public void appendAttribute(String clearname, int type, String value) throws DASException
- Throws:
DASException
-
addAttributeContainer
public void addAttributeContainer(AttributeTable at) throws AttributeExistsException
- Throws:
AttributeExistsException
-
appendAttributeContainer
public AttributeTable appendAttributeContainer(String clearname)
-
delAttribute
public void delAttribute(String clearname)
-
delAttribute
public void delAttribute(String clearname, int i) throws DASException
- Throws:
DASException
-
getAttributeNames
public Enumeration getAttributeNames()
-
printAttributes
public void printAttributes(OutputStream os)
-
printAttributes
public void printAttributes(OutputStream os, String pad)
-
printAttributes
public void printAttributes(PrintWriter pw)
-
printAttributes
public void printAttributes(PrintWriter pw, String pad)
-
printXML
public void printXML(OutputStream os)
-
printXML
public void printXML(OutputStream os, String pad)
-
printXML
public void printXML(PrintWriter pw)
-
printXML
public void printXML(PrintWriter pw, String pad)
-
printXML
public void printXML(PrintWriter pw, String pad, boolean constrained)
-
printConstraint
public void printConstraint(PrintWriter os)
-
cloneDAG
public DAPNode cloneDAG(DAPNode.CloneMap map) throws CloneNotSupportedException
Returns a clone of thisBaseType
. See DAPNode.cloneDAG.- Overrides:
cloneDAG
in classDAPNode
- Parameters:
map
- The set of already cloned nodes.- Returns:
- a clone of this
BaseType
. - Throws:
CloneNotSupportedException
-
-