OPeNDAP Hyrax Back End Server (BES)  Updated for version 3.8.3
ncml_module::VariableAggElement Class Reference

Element for the <variableAgg> element child of an <aggregation>. More...

#include <VariableAggElement.h>

Inheritance diagram for ncml_module::VariableAggElement:
Inheritance graph
Collaboration diagram for ncml_module::VariableAggElement:
Collaboration graph

Public Member Functions

void addPreDeleteCB (UseCountHitZeroCB *pCB)
 Add uniquely. More...
 
virtual VariableAggElementclone () const
 Make and return a copy of this. More...
 
AggregationElementgetParentAggregation () const
 Get our parent aggregation off the parser stack. More...
 
virtual int getRefCount () const
 Get the current reference count. More...
 
virtual const string & getTypeName () const
 Return the type of the element, which should be: the same as ConcreteClassName::getTypeName() More...
 
virtual void handleBegin ()
 Handle a begin on this element. More...
 
virtual void handleContent (const std::string &content)
 Handle the characters content for the element. More...
 
virtual void handleEnd ()
 Handle the closing of this element. More...
 
int line () const
 Return the current parse line number. More...
 
const string & name () const
 
virtual int ref () const
 Increase the reference count by one. More...
 
virtual void removeFromPool () const
 If the object is in an auto-delete pool, remove it from the pool and force it to only delete when it's ref count goes to 0. More...
 
void removePreDeleteCB (UseCountHitZeroCB *pCB)
 Remove it exists. More...
 
virtual void setAttributes (const XMLAttributeMap &attrs)
 Set the attributes of this from the map. More...
 
void setParser (NCMLParser *p)
 
virtual string toString () const
 Return a string describing the element. More...
 
virtual int unref () const throw ()
 Decrease the reference count by one. More...
 
virtual bool validateAttributes (const XMLAttributeMap &attrs, const vector< string > &validAttrs, vector< string > *pInvalidAttrs=0, bool printInvalid=true, bool throwOnError=true)
 Check that the given attributes are all in the valid set, otherwise fill in *pInvalidAttrs with the problematic ones if it's not null. More...
 
 VariableAggElement ()
 
 VariableAggElement (const VariableAggElement &proto)
 
virtual ~VariableAggElement ()
 

Static Public Member Functions

static bool areAllAttributesValid (const XMLAttributeMap &attrMap, const std::vector< string > &validAttrs, std::vector< string > *pInvalidAttributes=0)
 
static bool isValidAttribute (const std::vector< string > &validAttrs, const string &attr)
 
static std::string printAttributeIfNotEmpty (const std::string &attrName, const std::string &attrValue)
 Helper for subclasses implementing toString(). More...
 

Static Public Attributes

static const string _sTypeName = "variableAgg"
 
static const vector< string > _sValidAttributes = getValidAttributes()
 

Protected Attributes

NCMLParser_parser
 

Detailed Description

Element for the <variableAgg> element child of an <aggregation>.

Definition at line 42 of file VariableAggElement.h.

Constructor & Destructor Documentation

ncml_module::VariableAggElement::VariableAggElement ( )

Definition at line 40 of file VariableAggElement.cc.

Referenced by clone().

ncml_module::VariableAggElement::VariableAggElement ( const VariableAggElement proto)

Definition at line 47 of file VariableAggElement.cc.

ncml_module::VariableAggElement::~VariableAggElement ( )
virtual

Definition at line 54 of file VariableAggElement.cc.

Member Function Documentation

void agg_util::RCObject::addPreDeleteCB ( UseCountHitZeroCB pCB)
inherited

Add uniquely.

If it is added agan, the second time is ignored.

Definition at line 145 of file RCObject.cc.

References BESDEBUG.

bool ncml_module::NCMLElement::areAllAttributesValid ( const XMLAttributeMap attrMap,
const std::vector< string > &  validAttrs,
std::vector< string > *  pInvalidAttributes = 0 
)
staticinherited
Returns
whether all the attributes in attrMap are in validAttrs. If pInvalidAttributes, fill it in with all the illegal attributes.

Definition at line 261 of file NCMLElement.cc.

References ncml_module::XMLAttributeMap::begin(), ncml_module::XMLAttributeMap::end(), and ncml_module::NCMLElement::isValidAttribute().

Referenced by ncml_module::NCMLElement::validateAttributes().

Here is the call graph for this function:

VariableAggElement * ncml_module::VariableAggElement::clone ( ) const
virtual

Make and return a copy of this.

Used by the factory from a prototype.

Implements ncml_module::NCMLElement.

Definition at line 66 of file VariableAggElement.cc.

References VariableAggElement().

Here is the call graph for this function:

AggregationElement & ncml_module::VariableAggElement::getParentAggregation ( ) const

Get our parent aggregation off the parser stack.

Definition at line 118 of file VariableAggElement.cc.

References ncml_module::NCMLElement::_parser, and NCML_ASSERT_MSG.

Referenced by handleBegin().

int agg_util::RCObject::getRefCount ( ) const
virtualinherited

Get the current reference count.

Implements agg_util::RCObjectInterface.

Definition at line 110 of file RCObject.cc.

const string & ncml_module::VariableAggElement::getTypeName ( ) const
virtual

Return the type of the element, which should be: the same as ConcreteClassName::getTypeName()

Implements ncml_module::NCMLElement.

Definition at line 60 of file VariableAggElement.cc.

References _sTypeName.

void ncml_module::VariableAggElement::handleBegin ( )
virtual

Handle a begin on this element.

Called after creation and it is assumed the attributes and _parser are already set.

Implements ncml_module::NCMLElement.

Definition at line 79 of file VariableAggElement.cc.

References ncml_module::NCMLElement::_parser, ncml_module::AggregationElement::addAggregationVariable(), getParentAggregation(), ncml_module::NCMLParser::getParseLineNumber(), ncml_module::AggregationElement::setVariableAggElement(), THROW_NCML_PARSE_ERROR, toString(), and VALID_PTR.

Here is the call graph for this function:

void ncml_module::NCMLElement::handleContent ( const std::string &  content)
virtualinherited

Handle the characters content for the element.

Default impl throws if the content is not all whitespace. Subclasses that handle non-whitespace content should override.

Parameters
contentthe string of characters in the element content.

Reimplemented in ncml_module::AggregationElement, ncml_module::NetcdfElement, ncml_module::VariableElement, ncml_module::DimensionElement, ncml_module::ScanElement, ncml_module::AttributeElement, ncml_module::ValuesElement, ncml_module::ExplicitElement, ncml_module::ReadMetadataElement, and ncml_module::RemoveElement.

Definition at line 180 of file NCMLElement.cc.

References ncml_module::NCMLElement::_parser, ncml_module::NCMLParser::getParseLineNumber(), ncml_module::NCMLUtil::isAllWhitespace(), THROW_NCML_PARSE_ERROR, and ncml_module::NCMLElement::toString().

Referenced by ncml_module::ScanElement::handleContent(), and ncml_module::NCMLParser::onCharacters().

Here is the call graph for this function:

void ncml_module::VariableAggElement::handleEnd ( )
virtual

Handle the closing of this element.

Implements ncml_module::NCMLElement.

Definition at line 105 of file VariableAggElement.cc.

bool ncml_module::NCMLElement::isValidAttribute ( const std::vector< string > &  validAttrs,
const string &  attr 
)
staticinherited
Returns
whether the given attr is in the array validAttrs or not... Helper for subclasses

Definition at line 246 of file NCMLElement.cc.

Referenced by ncml_module::NCMLElement::areAllAttributesValid().

int ncml_module::NCMLElement::line ( ) const
inherited
const string& ncml_module::VariableAggElement::name ( ) const
inline

Definition at line 61 of file VariableAggElement.h.

std::string ncml_module::NCMLElement::printAttributeIfNotEmpty ( const std::string &  attrName,
const std::string &  attrValue 
)
staticinherited

Helper for subclasses implementing toString().

Returns
a string with attrName="attrValue" if !attrValue.empty(), otherwise return the empty string.

Definition at line 240 of file NCMLElement.cc.

Referenced by toString(), ncml_module::ScanElement::toString(), ncml_module::DimensionElement::toString(), ncml_module::NetcdfElement::toString(), and ncml_module::AggregationElement::toString().

int agg_util::RCObject::ref ( ) const
virtualinherited
void agg_util::RCObject::removeFromPool ( ) const
virtualinherited

If the object is in an auto-delete pool, remove it from the pool and force it to only delete when it's ref count goes to 0.

Useful when we desire a particular object stay around outside of the pool's lifetime.

Implements agg_util::RCObjectInterface.

Definition at line 116 of file RCObject.cc.

References NCML_ASSERT, and agg_util::RCObjectPool::remove().

Here is the call graph for this function:

void agg_util::RCObject::removePreDeleteCB ( UseCountHitZeroCB pCB)
inherited

Remove it exists.

If not, this unchanged.

Definition at line 164 of file RCObject.cc.

References BESDEBUG.

void ncml_module::VariableAggElement::setAttributes ( const XMLAttributeMap attrs)
virtual

Set the attributes of this from the map.

Parameters
attrsthe attribute map to set this class to.

Implements ncml_module::NCMLElement.

Definition at line 72 of file VariableAggElement.cc.

References _sValidAttributes, ncml_module::XMLAttributeMap::getValueForLocalNameOrDefault(), and ncml_module::NCMLElement::validateAttributes().

Here is the call graph for this function:

void ncml_module::NCMLElement::setParser ( NCMLParser p)
inherited

Definition at line 166 of file NCMLElement.cc.

References ncml_module::NCMLElement::_parser, and NCML_ASSERT_MSG.

string ncml_module::VariableAggElement::toString ( ) const
virtual

Return a string describing the element.

Implements ncml_module::NCMLElement.

Definition at line 110 of file VariableAggElement.cc.

References _sTypeName, and ncml_module::NCMLElement::printAttributeIfNotEmpty().

Referenced by handleBegin().

Here is the call graph for this function:

int agg_util::RCObject::unref ( ) const
throw (
)
virtualinherited

Decrease the reference count by one.

If it goes from 1 to 0, delete this and this is no longer valid.

Returns
the new ref count. If it is 0, the caller knows the object was deleted.

It is illegal to unref() an object with a count of 0. We don't throw to allow use in dtors, so the caller is assumed not to do it!

const since the reference count is not part of the semantic constness of the rep

Implements agg_util::RCObjectInterface.

Definition at line 82 of file RCObject.cc.

References BESDEBUG, agg_util::RCObjectPool::release(), and agg_util::RCObject::toString().

Referenced by ncml_module::NetcdfElement::clearDimensions(), agg_util::RCPtr< ncml_module::AggregationElement >::operator=(), ncml_module::AggregationElement::~AggregationElement(), and ncml_module::NetcdfElement::VariableValueValidator::~VariableValueValidator().

Here is the call graph for this function:

bool ncml_module::NCMLElement::validateAttributes ( const XMLAttributeMap attrs,
const vector< string > &  validAttrs,
vector< string > *  pInvalidAttrs = 0,
bool  printInvalid = true,
bool  throwOnError = true 
)
virtualinherited

Check that the given attributes are all in the valid set, otherwise fill in *pInvalidAttrs with the problematic ones if it's not null.

If pInvalidAttrs && printInvalid is set, we print the problematic attributes to BESDEBUG "ncml" channel If throwOnError is set, we throw a parse error instead of returning.

Returns
whether all attributes are in the valid set if not throw

Definition at line 191 of file NCMLElement.cc.

References ncml_module::NCMLElement::_parser, ncml_module::NCMLElement::areAllAttributesValid(), BESDEBUG, ncml_module::NCMLParser::getParseLineNumber(), ncml_module::NCMLElement::getTypeName(), THROW_NCML_PARSE_ERROR, and VALID_PTR.

Referenced by ncml_module::RemoveElement::setAttributes(), ncml_module::ExplicitElement::setAttributes(), ncml_module::ReadMetadataElement::setAttributes(), setAttributes(), ncml_module::ValuesElement::setAttributes(), ncml_module::AttributeElement::setAttributes(), ncml_module::ScanElement::setAttributes(), ncml_module::DimensionElement::setAttributes(), ncml_module::VariableElement::setAttributes(), ncml_module::NetcdfElement::setAttributes(), and ncml_module::AggregationElement::setAttributes().

Here is the call graph for this function:

Member Data Documentation

NCMLParser* ncml_module::NCMLElement::_parser
protectedinherited

Definition at line 193 of file NCMLElement.h.

Referenced by ncml_module::AggregationElement::addAggregationVariable(), ncml_module::NetcdfElement::createResponseObject(), ncml_module::NetcdfElement::getAggMemberDataset(), ncml_module::ScanElement::getDatasetList(), getParentAggregation(), ncml_module::RemoveElement::handleBegin(), ncml_module::ExplicitElement::handleBegin(), ncml_module::ReadMetadataElement::handleBegin(), handleBegin(), ncml_module::ValuesElement::handleBegin(), ncml_module::AttributeElement::handleBegin(), ncml_module::ScanElement::handleBegin(), ncml_module::DimensionElement::handleBegin(), ncml_module::VariableElement::handleBegin(), ncml_module::NetcdfElement::handleBegin(), ncml_module::AggregationElement::handleBegin(), ncml_module::RemoveElement::handleContent(), ncml_module::ExplicitElement::handleContent(), ncml_module::ReadMetadataElement::handleContent(), ncml_module::ValuesElement::handleContent(), ncml_module::AttributeElement::handleContent(), ncml_module::DimensionElement::handleContent(), ncml_module::VariableElement::handleContent(), ncml_module::NetcdfElement::handleContent(), ncml_module::AggregationElement::handleContent(), ncml_module::NCMLElement::handleContent(), ncml_module::ValuesElement::handleEnd(), ncml_module::AttributeElement::handleEnd(), ncml_module::ScanElement::handleEnd(), ncml_module::VariableElement::handleEnd(), ncml_module::NetcdfElement::handleEnd(), ncml_module::AggregationElement::handleEnd(), ncml_module::NetcdfElement::isValid(), ncml_module::NCMLElement::line(), ncml_module::ValuesElement::setAttributes(), ncml_module::NCMLElement::setParser(), ncml_module::NCMLElement::validateAttributes(), and ncml_module::NCMLElement::~NCMLElement().

const string ncml_module::VariableAggElement::_sTypeName = "variableAgg"
static

Definition at line 48 of file VariableAggElement.h.

Referenced by getTypeName(), and toString().

const vector< string > ncml_module::VariableAggElement::_sValidAttributes = getValidAttributes()
static

Definition at line 49 of file VariableAggElement.h.

Referenced by setAttributes().


The documentation for this class was generated from the following files: