42 mDestructArray(adopt),
75 for (i = 0; i <
mModes.size(); ++i)
119 assert(d <
mModes.size());
131 assert(d <
mModes.size());
143 assert(pDataModel != NULL);
145 for (i = 0; i < imax; ++i)
188 if (!v)
return false;
247 for (i = 0; i < imax; ++i)
255 std::ostringstream indexString;
258 for (ii = 0; ii < index.size(); ++ii)
260 indexString <<
"[" << index[ii] <<
"]";
264 if (index.size() == 0)
265 indexString <<
"[.]";
267 return this->
getObject(indexString.str());
287 objectMap::const_iterator it =
mObjects.begin();
288 objectMap::const_iterator end =
mObjects.end();
290 for (; it != end; ++it)
291 if (dynamic_cast<const CArrayElementReference *>(it->second) != NULL)
292 objects.insert(it->second);
304 if (cn ==
"Property=DisplayName")
331 std::string indexString;
336 indexString +=
"[" + tmp +
"]";
343 std::pair< objectMap::const_iterator, objectMap::const_iterator > range =
346 objectMap::const_iterator it = range.first;
348 while (it != range.second && it->second->getObjectType() !=
"ElementReference") ++it;
350 if (it == range.second)
357 pObject = it->second;
382 #define SPC(level) std::string(level, ' ')
386 const std::vector<std::vector<std::string> > & display)
const
394 size_t imax =
size()[0];
396 for (index[0] = 0; index[0] < imax; ++index[0])
397 ostream <<
SPC(indent) << display[0][index[0]] <<
"\t" << (*
array())[index] <<
"\n";
404 size_t imax =
size()[0];
405 size_t jmax =
size()[1];
406 ostream <<
SPC(indent);
408 for (index[1] = 0; index[1] < jmax; ++index[1])
409 ostream <<
"\t" << display[1][index[1]];
413 for (index[0] = 0; index[0] < imax; ++index[0])
415 ostream <<
SPC(indent) << display[0][index[0]];
417 for (index[1] = 0; index[1] < jmax; ++index[1])
418 ostream <<
"\t" << (*
array())[index];
425 size_t i, imax =
size()[level];
427 for (i = 0; i < imax; ++i)
440 if (!o.
array())
return os;
443 std::vector<std::vector<std::string> > displaynames;
457 os << (*o.
array())[arraysize] << std::endl;
472 if (dim == 0)
return false;
477 for (idx = 0; idx < dim; idx++)
CCopasiDataModel * getObjectDataModel()
std::vector< std::string > mDimensionDescriptions
virtual void print(std::ostream *ostream) const
CCopasiObject * getDataObject(const CCopasiObjectName &CN) const
virtual std::string getObjectDisplayName(bool regular=true, bool richtext=false) const
void createNumbers(size_t d) const
const std::string & getDimensionDescription(size_t d) const
bool isNameVector() const
const std::string & getObjectName() const
CCopasiObjectName getRemainder() const
virtual const CObjectInterface * getObject(const CCopasiObjectName &cn) const
const std::vector< std::string > & getAnnotationsString(size_t d, bool display=true) const
virtual const CObjectInterface * getObject(const CCopasiObjectName &cn) const
virtual size_t size() const
virtual const index_type & size() const =0
void resizeOneDimension(size_t d)
void setAnnotationCN(size_t d, size_t i, const std::string cn)
CCopasiAbstractArray * array()
const std::string & getObjectType() const
std::ostream & operator<<(std::ostream &os, const CArrayAnnotation &o)
CCopasiAbstractArray * mpArray
void setDescription(const std::string &s)
std::vector< size_t > index_type
void reDimensionalize(size_t d)
const std::string & getDescription() const
void setAnnotationString(size_t d, size_t i, const std::string s)
std::vector< Mode > mModes
virtual ~CArrayAnnotation()
std::vector< std::vector< CRegisteredObjectName > > mAnnotationsCN
void appendElementReferences(std::set< const CCopasiObject * > &objects) const
std::string getElementName(const size_t &pos, const bool &unescape=true) const
void setCopasiVector(size_t d, const CCopasiContainer *v)
std::vector< std::vector< std::string > > mAnnotationsString
void setMode(size_t d, Mode m)
void setDimensionDescription(size_t d, const std::string &s)
virtual std::string getObjectDisplayName(bool regular=true, bool richtext=false) const
Header file of class CArrayAnnotation.
bool createAnnotationsCNFromCopasiVector(size_t d, const CCopasiContainer *v) const
const CObjectInterface * addElementReference(CCopasiAbstractArray::index_type index) const
std::vector< const CCopasiContainer * > mCopasiVectors
const std::vector< CRegisteredObjectName > & getAnnotationsCN(size_t d) const
virtual const CObjectInterface * getObject(const CCopasiObjectName &cn) const
void setArray(CCopasiAbstractArray *a)
virtual size_t dimensionality() const =0
CCopasiAbstractArray::index_type size() const
size_t dimensionality() const
CCopasiContainer * getObjectParent() const
void printRecursively(std::ostream &ostream, size_t level, CCopasiAbstractArray::index_type &index, const std::vector< std::vector< std::string > > &display) const