29#ifndef __NCML_MODULE__VARIABLE_ELEMENT_H__
30#define __NCML_MODULE__VARIABLE_ELEMENT_H__
32#include "NCMLElement.h"
63 static const string _sTypeName;
64 static const vector<string> _sValidAttributes;
73 virtual void handleContent(
const string& content);
77 const std::string name()
const
82 const std::string type()
const
87 const std::string shape()
const
92 const std::string orgName()
const
134 void processExistingVariable(
NCMLParser& p, libdap::BaseType* pVar);
151 void processRenameVariableDataWorker(
NCMLParser& p, libdap::BaseType* pOrgVar);
181 void processNewScalar(
NCMLParser& p,
const std::string& dapType);
195 void processNewArray(
NCMLParser& p,
const std::string& dapType);
204 libdap::BaseType* replaceArrayIfNeeded(
NCMLParser& p, libdap::BaseType* pOrgVar,
const string& name);
215 void addNewVariableAndEnterScope(
NCMLParser& p,
const std::string& dapType);
220 void enterScope(
NCMLParser& p, libdap::BaseType* pVar);
228 bool isDimensionNumericConstant(
const std::string& dimToken)
const;
233 unsigned int getSizeForDimension(
NCMLParser& p,
const std::string& dimToken)
const;
250 unsigned int getProductOfDimensionSizes(
NCMLParser& p)
const;
252 static vector<string> getValidAttributes();
263 vector<string> _shapeTokens;
266 libdap::BaseType* _pNewlyCreatedVar;
Base class for NcML element concrete classes.
Concrete class for NcML <variable> element.
virtual string toString() const
virtual const string & getTypeName() const
virtual void setAttributes(const XMLAttributeMap &attrs)
virtual void handleBegin()
bool checkGotValues() const
bool isNewVariable() const
virtual VariableElement * clone() const
NcML Parser for adding/modifying/removing metadata (attributes) to existing local datasets using NcML...