29 #ifndef __NCML_MODULE__NETCDF_ELEMENT_H__ 30 #define __NCML_MODULE__NETCDF_ELEMENT_H__ 32 #include "AggMemberDataset.h" 33 #include "DDSAccessInterface.h" 34 #include "DDSLoader.h" 35 #include "NCMLElement.h" 46 class AggregationElement;
47 class DimensionElement;
49 class VariableElement;
69 static const string _sTypeName;
70 static const vector<string> _sValidAttributes;
85 const string& location()
const 89 const string& id()
const 93 const string& title()
const 97 const string& coordValue()
const 101 const string& ncoords()
const 106 bool hasNcoords()
const 108 return !_ncoords.empty();
129 virtual const libdap::DDS*
getDDS()
const;
134 virtual libdap::DDS*
getDDS();
136 bool getProcessedMetadataDirective()
const 138 return _gotMetadataDirective;
141 void setProcessedMetadataDirective()
143 _gotMetadataDirective =
true;
232 #if 0 // not sure we need this yet 242 template <
typename T>
int getCoordValueVector(vector<T>& values)
const;
321 void throwOnUnsupportedAttributes();
328 bool validateAttributeContextOrThrow()
const;
330 static vector<string> getValidAttributes();
340 string _fmrcDefinition;
344 bool _gotMetadataDirective;
372 std::vector<DimensionElement*> _dimensions;
471 _pNewVar(0), _pVarElt(0)
475 _pNewVar(pBT), _pVarElt(pVE)
483 libdap::BaseType* _pNewVar;
499 vector<VVVEntry> _entries;
~VariableValueValidator()
bool getCoordValueAsDouble(double &val) const
void addVariableToValidateOnClose(libdap::BaseType *pNewVar, VariableElement *pVE)
virtual const libdap::DDS * getDDS() const
virtual NetcdfElement * clone() const
const DimensionElement * getDimensionInLocalScope(const string &name) const
static bool isCoordValueLexicographicallyLessThan(const NetcdfElement *pLHS, const NetcdfElement *pRHS)
void setParentAggregation(AggregationElement *parent)
void addDimension(DimensionElement *dim)
void setChildAggregation(AggregationElement *agg, bool throwIfExists=true)
NcML Parser for adding/modifying/removing metadata (attributes) to existing local datasets using NcML...
NetcdfElement * getParentDataset() const
virtual void handleContent(const string &content)
Concrete class for NcML <netcdf> element.
void setVariableGotValues(libdap::BaseType *pVarToValidate)
static bool isLocationLexicographicallyLessThan(const NetcdfElement *pLHS, const NetcdfElement *pRHS)
virtual string toString() const
virtual const string & getTypeName() const
virtual void handleBegin()
void removeVariableToValidate(libdap::BaseType *pVarToRemove)
void createResponseObject(agg_util::DDSLoader::ResponseType type)
AggregationElement * getChildAggregation() const
A reference to an RCObject which automatically ref() and deref() on creation and destruction.
AggregationElement * getParentAggregation() const
VariableElement * findVariableElementForLibdapVar(libdap::BaseType *pNewVar)
void setVariableGotValues(libdap::BaseType *pVarToValidate, bool removeEntry)
void unborrowResponseObject(BESDapResponse *pResponse)
Base class for NcML element concrete classes.
const std::vector< DimensionElement * > & getDimensionElements() const
Represents an OPeNDAP DAP response object within the BES.
const DimensionElement * getDimensionInFullScope(const string &name) const
Concrete class for NcML <variable> element.
virtual void setAttributes(const XMLAttributeMap &attrs)
void addVariableToValidate(libdap::BaseType *pNewVar, VariableElement *pVE)
RCPtr< agg_util::AggMemberDataset > getAggMemberDataset() const
string printDimensions() const
void borrowResponseObject(BESDapResponse *pResponse)
unsigned int getNcoordsAsUnsignedInt() const
VariableElement * findVariableElementForLibdapVar(libdap::BaseType *pNewVar)