bes
Updated for version 3.20.6
|
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 std::string _sTypeName;
70 static const std::vector<std::string> _sValidAttributes;
81 virtual std::string
toString()
const;
85 const std::string& location()
const
89 const std::string& id()
const
93 const std::string& title()
const
97 const std::string& coordValue()
const
101 const std::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(std::vector<T>& values)
const;
321 void throwOnUnsupportedAttributes();
328 bool validateAttributeContextOrThrow()
const;
330 static std::vector<std::string> getValidAttributes();
333 std::string _location;
336 std::string _ncoords;
337 std::string _enhance;
338 std::string _addRecords;
339 std::string _coordValue;
340 std::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 std::vector<VVVEntry> _entries;
unsigned int getNcoordsAsUnsignedInt() const
void removeVariableToValidate(libdap::BaseType *pVarToRemove)
void setVariableGotValues(libdap::BaseType *pVarToValidate)
void setParentAggregation(AggregationElement *parent)
Represents an OPeNDAP DAP response object within the BES.
void setChildAggregation(AggregationElement *agg, bool throwIfExists=true)
Concrete class for NcML <netcdf> element.
virtual std::string toString() const
void addDimension(DimensionElement *dim)
virtual NetcdfElement * clone() const
static bool isCoordValueLexicographicallyLessThan(const NetcdfElement *pLHS, const NetcdfElement *pRHS)
~VariableValueValidator()
static bool isLocationLexicographicallyLessThan(const NetcdfElement *pLHS, const NetcdfElement *pRHS)
virtual void handleBegin()
const DimensionElement * getDimensionInFullScope(const std::string &name) const
NetcdfElement * getParentDataset() const
virtual void handleContent(const std::string &content)
const std::vector< DimensionElement * > & getDimensionElements() const
Concrete class for NcML <variable> element.
virtual const std::string & getTypeName() const
AggregationElement * getChildAggregation() const
void addVariableToValidate(libdap::BaseType *pNewVar, VariableElement *pVE)
const DimensionElement * getDimensionInLocalScope(const std::string &name) const
Base class for NcML element concrete classes.
void unborrowResponseObject(BESDapResponse *pResponse)
void createResponseObject(agg_util::DDSLoader::ResponseType type)
RCPtr< agg_util::AggMemberDataset > getAggMemberDataset() const
std::string printDimensions() const
AggregationElement * getParentAggregation() const
NcML Parser for adding/modifying/removing metadata (attributes) to existing local datasets using NcML...
VariableElement * findVariableElementForLibdapVar(libdap::BaseType *pNewVar)
void setVariableGotValues(libdap::BaseType *pVarToValidate, bool removeEntry)
A reference to an RCObject which automatically ref() and deref() on creation and destruction.
VariableElement * findVariableElementForLibdapVar(libdap::BaseType *pNewVar)
bool getCoordValueAsDouble(double &val) const
virtual const libdap::DDS * getDDS() const
void addVariableToValidateOnClose(libdap::BaseType *pNewVar, VariableElement *pVE)
virtual void setAttributes(const XMLAttributeMap &attrs)
void borrowResponseObject(BESDapResponse *pResponse)