Package opendap.dap
Class AttributeTable
- java.lang.Object
-
- opendap.dap.DAPNode
-
- opendap.dap.AttributeTable
-
- All Implemented Interfaces:
Serializable
,Cloneable
- Direct Known Subclasses:
DAS
public class AttributeTable extends DAPNode
AnAttributeTable
stores a set of names and, for each name, anAttribute
object. For more information on the types of data which can be stored in an attribute, including aliases and otherAttributeTable
objects, see the documentation forAttribute
. The attribute tables have a standard printed representation. There is aprint
method for writing this form and aparse
method for reading the printed form. AnAttributeTable
's print representation might look like:String long_name "Weekly Means of Sea Surface Temperature";
oractual_range { Float64 min -1.8; Float64 max 35.09; }
orString Investigators "Cornillon", "Fleirl", "Watts";
orAlias New_Attribute Old_Attribute;
Here, long_name and Investigators are simple attributes, actual_range is a container attribute, and New_Attribute is an alias pointing to Old_Attribute.
-
-
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
-
-
Constructor Summary
Constructors Constructor Description AttributeTable()
Deprecated.Use constructor that takes the name of the table.AttributeTable(String clearname)
Create a new emptyAttributeTable
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAlias(String alias, String attributeName)
Add an alias to the current table.void
addContainer(String clearname, AttributeTable at)
Create and append an attribute container to the table.void
appendAttribute(String clearname, int type, String value)
Adds an attribute to the table.void
appendAttribute(String clearname, int type, String value, boolean check)
Adds an attribute to the table.AttributeTable
appendContainer(String clearname)
Create and append an attribute container to the table.DAPNode
cloneDAG(DAPNode.CloneMap map)
Returns a clone of thisAttributeTable
.void
delAttribute(String clearname)
Delete the attribute namedname
.void
delAttribute(String clearname, int i)
Delete the attribute namedname
.Attribute
getAttribute(String clearname)
Returns theAttribute
which matches name.Enumeration
getNames()
Returns anEnumeration
of the attribute names in thisAttributeTable
.boolean
hasAttribute(String clearname)
Returns theAttribute
which matches name.void
print(OutputStream os)
Print the attribute table on the givenOutputStream
with four spaces of indentation.void
print(OutputStream os, String pad)
Print the attribute table on the givenOutputStream
.void
print(PrintStream os)
Print the attribute table on the givenPrintWriter
with four spaces of indentation.void
print(PrintWriter os)
Print the attribute table on the givenPrintWriter
with four spaces of indentation.void
print(PrintWriter os, String pad)
Print the attribute table on the givenPrintWriter
.void
printXML(OutputStream os, String pad)
void
printXML(PrintWriter pw)
void
printXML(PrintWriter pw, String pad)
void
printXML(PrintWriter pw, String pad, boolean constrained)
int
size()
-
Methods inherited from class opendap.dap.DAPNode
clone, cloneDAG, getClearName, getEncodedName, getParent, isProject, setClearName, setEncodedName, setParent, setProject, setProject, setProjected
-
-
-
-
Constructor Detail
-
AttributeTable
public AttributeTable()
Deprecated.Use constructor that takes the name of the table.Create a new emptyAttributeTable
.
-
AttributeTable
public AttributeTable(String clearname)
Create a new emptyAttributeTable
.
-
-
Method Detail
-
size
public int size()
- Returns:
- the # of contained attributes
-
getNames
public final Enumeration getNames()
Returns anEnumeration
of the attribute names in thisAttributeTable
. Use thegetAttribute
method to get theAttribute
for a given name.- Returns:
- an
Enumeration
ofString
. - See Also:
getAttribute(String)
-
getAttribute
public final Attribute getAttribute(String clearname)
Returns theAttribute
which matches name.- Parameters:
clearname
- the name of theAttribute
to return.- Returns:
- the
Attribute
with the specified name, or null if there is no matchingAttribute
. - See Also:
Attribute
-
hasAttribute
public final boolean hasAttribute(String clearname)
Returns theAttribute
which matches name.- Parameters:
clearname
- the name of theAttribute
to return.- Returns:
- True if an Attribute with named 'name' exists, False otherwise.
- See Also:
Attribute
-
appendAttribute
public final void appendAttribute(String clearname, int type, String value, boolean check) throws DASException
Adds an attribute to the table. If the given name already refers to an attribute, and the attribute has a vector value, the given value is appended to the attribute vector. Calling this function repeatedly is the way to create an attribute vector. The function throws an exception if the attribute is a container, or if the type of the input value does not match the existing attribute's type and thecheck
parameter is true. Use theappendContainer
method to add container attributes.- Parameters:
clearname
- The name of the attribute to add or modify.type
- The type code of the attribute to add or modify.value
- The value to add to the attribute table.check
- Check the validity of the attribute's value?- Throws:
AttributeExistsException
- thrown if an Attribute with the same name, but a different type was previously defined.AttributeBadValueException
- thrown if the value is not a legal member of typeDASException
- See Also:
appendContainer(String)
-
appendAttribute
public final void appendAttribute(String clearname, int type, String value) throws DASException
Adds an attribute to the table. If the given name already refers to an attribute, and the attribute has a vector value, the given value is appended to the attribute vector. Calling this function repeatedly is the way to create an attribute vector. The function throws an exception if the attribute is a container, or if the type of the input value does not match the existing attribute's type. Use theappendContainer
method to add container attributes.- Parameters:
clearname
- The name of the attribute to add or modify.type
- The type code of the attribute to add or modify.value
- The value to add to the attribute table.- Throws:
AttributeExistsException
- thrown if an Attribute with the same name, but a different type was previously defined.AttributeBadValueException
- thrown if the value is not a legal member of typeDASException
- See Also:
appendContainer(String)
-
appendContainer
public final AttributeTable appendContainer(String clearname)
Create and append an attribute container to the table. A container is anotherAttributeTable
object.- Parameters:
clearname
- the name of the container to add.- Returns:
- A pointer to the new
AttributeTable
object, or null if a container by that name already exists.
-
addContainer
public final void addContainer(String clearname, AttributeTable at) throws AttributeExistsException
Create and append an attribute container to the table. A container is anotherAttributeTable
object.- Parameters:
clearname
- the name of the container to add. if a container by that name already exists.- Throws:
AttributeExistsException
-
addAlias
public final void addAlias(String alias, String attributeName) throws NoSuchAttributeException, AttributeExistsException
Add an alias to the current table. This method is used by the DAS parser to build Aliases for the DAS. And the DDSXMLParser to add them to the DDX The new (9/26/02) DDS requires the use ofaddAlias(String, String, String)
and is the preffered way of representing the DAS information.- Parameters:
alias
- The alias to insert into the attribute table.attributeName
- The normalized name of the attribute to which the alias will refer.- Throws:
NoSuchAttributeException
- thrown if the existing attribute could not be found.AttributeExistsException
- thrown if the new alias has the same name as an existing attribute.
-
delAttribute
public final void delAttribute(String clearname)
Delete the attribute namedname
.- Parameters:
clearname
- The name of the attribute to delete. This can be an attribute of any type, including containers.
-
delAttribute
public final void delAttribute(String clearname, int i) throws DASException
Delete the attribute namedname
. If the attribute has a vector value, delete thei
'th element of the vector.- Parameters:
clearname
- The name of the attribute to delete. This can be an attribute of any type, including containers.i
- If the named attribute is a vector, andi
is non-negative, thei
'th entry in the vector is deleted. Ifi
equals -1, the entire attribute is deleted.- Throws:
DASException
- See Also:
delAttribute(String)
-
print
public void print(PrintWriter os, String pad)
Print the attribute table on the givenPrintWriter
.- Parameters:
os
- thePrintWriter
to use for output.pad
- the number of spaces to indent each line.
-
print
public final void print(OutputStream os, String pad)
Print the attribute table on the givenOutputStream
.- Parameters:
os
- theOutputStream
to use for output.pad
- the number of spaces to indent each line.
-
print
public final void print(PrintStream os)
Print the attribute table on the givenPrintWriter
with four spaces of indentation.- Parameters:
os
- thePrintWriter
to use for output.
-
print
public final void print(PrintWriter os)
Print the attribute table on the givenPrintWriter
with four spaces of indentation.- Parameters:
os
- thePrintWriter
to use for output.
-
print
public final void print(OutputStream os)
Print the attribute table on the givenOutputStream
with four spaces of indentation.- Parameters:
os
- theOutputStream
to use for output.
-
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)
-
cloneDAG
public DAPNode cloneDAG(DAPNode.CloneMap map) throws CloneNotSupportedException
Returns a clone of thisAttributeTable
. See DAPNode.cloneDag()- Overrides:
cloneDAG
in classDAPNode
- Parameters:
map
- track previously cloned nodes- Returns:
- a clone of this
Attribute
. - Throws:
CloneNotSupportedException
-
-