29 #ifndef FODAPNJSONTRANSFORM_H_
30 #define FODAPNJSONTRANSFORM_H_
54 std::string _returnAs;
55 std::string _indent_increment;
56 std::string atomicVals;
57 std::string currDataType;
58 std::string coordRefType;
59 std::string domainType;
66 bool canConvertToCovJson;
80 std::string standardName;
85 unsigned int axisCount;
86 std::vector<Axis *> axes;
87 unsigned int parameterCount;
88 std::vector<Parameter *> parameters;
89 std::vector<int> shapeVals;
125 void getAttributes(std::ostream *strm, libdap::AttrTable &attr_table, std::string name,
126 bool *axisRetrieved,
bool *parameterRetrieved);
136 string sanitizeTimeOriginString(std::string timeOrigin);
153 void transform(std::ostream *strm, libdap::DDS *dds, std::string indent,
bool sendData,
bool testOverride);
167 void transform(std::ostream *strm, libdap::BaseType *bt, std::string indent,
bool sendData);
186 void transform(std::ostream *strm, libdap::Constructor *cnstrctr, std::string indent,
bool sendData);
198 void transform(std::ostream *strm, libdap::Array *a, std::string indent,
bool sendData);
211 void transformAtomic(libdap::BaseType *bt, std::string indent,
bool sendData);
223 void transformNodeWorker(std::ostream *strm, vector<libdap::BaseType *> leaves, vector<libdap::BaseType *> nodes,
224 string indent,
bool sendData);
233 void printCoverage(std::ostream *strm, std::string indent);
268 void printDomain(std::ostream *strm, std::string indent);
284 void printAxes(std::ostream *strm, std::string indent);
307 void printReference(std::ostream *strm, std::string indent);
340 void printParameters(std::ostream *strm, std::string indent);
364 void printRanges(std::ostream *strm, std::string indent);
376 void printCoverageJSON(std::ostream *strm,
string indent,
bool testOverride);
396 void covjsonSimpleTypeArray(std::ostream *strm, libdap::Array *a, std::string indent,
bool sendData);
418 void covjsonStringArray(std::ostream *strm, libdap::Array *a, std::string indent,
bool sendData);
433 unsigned int covjsonSimpleTypeArrayWorker(std::ostream *strm, T *values,
unsigned int indx,
434 std::vector<unsigned int> *shape,
unsigned int currentDim);
444 void addAxis(std::string name, std::string values);
461 void addParameter(std::string
id, std::string name, std::string type, std::string dataType, std::string unit,
462 std::string longName, std::string standardName, std::string shape, std::string values);
465 void setAxesExistence(
bool x,
bool y,
bool z,
bool t) {
472 void setDomainType(
int domainType) {
473 this->domainType = domainType;
491 virtual void transform(std::ostream &ostrm,
bool sendData,
bool testOverride);
517 for (std::vector<Axis *>::const_iterator i = axes.begin(); i != axes.end(); ++i)
520 for (std::vector<Parameter *>::const_iterator i = parameters.begin(); i != parameters.end(); ++i)
534 virtual void dump(std::ostream &strm)
const;
537 virtual void addTestAxis(std::string name, std::string values) {
538 addAxis(name, values);
541 virtual void addTestParameter(std::string
id, std::string name, std::string type, std::string dataType, std::string unit,
542 std::string longName, std::string standardName, std::string shape, std::string values) {
543 addParameter(
id, name, type, dataType, unit, longName, standardName, shape, values);
546 virtual void setTestAxesExistence(
bool x,
bool y,
bool z,
bool t) {
547 setAxesExistence(x, y, z, t);
550 virtual void setTestDomainType(
int domainType) {
551 setDomainType(domainType);
554 virtual void printCoverage(std::ostream &ostrm, std::string indent) {
555 printCoverage(&ostrm, indent);
558 virtual void printDomain(std::ostream &ostrm, std::string indent) {
559 printDomain(&ostrm, indent);
562 virtual void printAxes(std::ostream &ostrm, std::string indent) {
563 printAxes(&ostrm, indent);
566 virtual void printReference(std::ostream &ostrm, std::string indent) {
567 printReference(&ostrm, indent);
570 virtual void printParameters(std::ostream &ostrm, std::string indent) {
571 printParameters(&ostrm, indent);
574 virtual void printRanges(std::ostream &ostrm, std::string indent) {
575 printRanges(&ostrm, indent);