libNuML  1.1.1
Library for reading / writing NuML documents
CompositeDescription.h
Go to the documentation of this file.
1 /*
2 * ****************************************************************************
3 * This file is part of libNUML. Please visit http://code.google.com/p/numl/for more
4 * information about NUML, and the latest version of libNUML.
5 * Copyright (c) 2013 The University of Manchester.
6 *
7 * This library is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU Lesser General Public License as published
9 * by the Free Software Foundation. A copy of the license agreement is
10 * provided in the file named "LICENSE.txt" included with this software
11 * distribution and also available online as http://www.gnu.org/licenses/lgpl.html
12 *
13 * Contributors:
14 * Joseph O. Dada, The University of Manchester - initial API and implementation
15 * ****************************************************************************
16 **/
17 
24 #ifndef COMPOSITEDESCRIPTION_H_
25 #define COMPOSITEDESCRIPTION_H_
26 
27 #include <numl/common/extern.h>
28 #include <numl/common/numlfwd.h>
29 
30 #include <sbml/xml/XMLNode.h>
31 #include <sbml/xml/XMLAttributes.h>
32 #include <sbml/xml/XMLInputStream.h>
33 #include <sbml/xml/XMLOutputStream.h>
34 
35 //#include <numl/TupleDescription.h>
36 //#include <numl/AtomicDescription.h>
38 
39 
40 #include <numl/NMBase.h>
41 #include <numl/NUMLList.h>
42 
43 #ifdef __cplusplus
45 
46 //class XMLOutputStream;
48 class TupleDescription;
49 class AtomicDescription;
50 
51 class NUMLVisitor;
52 
53 class NUMLDocument;
54 /*
55  *
56  */
58 {
59 
60 public:
61 
63 
82  CompositeDescription (unsigned int level, unsigned int version);
83 
106 
112  virtual CompositeDescription* clone () const;
113 
121  virtual bool accept (NUMLVisitor& v) const;
122 
128  virtual const std::string& getName () const;
129 
130  virtual const std::string& getId() const;
131  virtual int setId(const std::string& id);
132 
133 
139  const std::string& getIndexType () const;
140 
150  bool isContentCompositeDescription () const;
151 
161  bool isContentTupleDescription () const;
162 
172  bool isContentAtomicDescription () const;
173 
174 
180  const std::string& getOntologyTerm () const;
181 
196  virtual int setName (const std::string& name);
197 
212  int setIndexType (const std::string& indexType);
213 
214 
229  int setOntologyTerm (const std::string& ontologyTerm);
230 
237  virtual const std::string& getElementName () const;
238 
259 
260 
282  virtual NUMLTypeCode_t getItemTypeCode () const;
283 
284 
295  CompositeDescription * getCompositeDescription(unsigned int n);
296 
306  TupleDescription * getTupleDescription();
307 
317  AtomicDescription * getAtomicDescription();
318 
319 
329  virtual CompositeDescription * get(unsigned int n);
330 
331 
341  virtual const CompositeDescription * get(unsigned int n) const;
342 
353  virtual CompositeDescription* remove (unsigned int n);
354 
363 
372 
386  //virtual void writeElements(XMLOutputStream& stream) const;
387 
388 
389 protected:
390 
395  virtual NMBase* createObject (LIBSBML_CPP_NAMESPACE_QUALIFIER XMLInputStream& stream);
396 
397  virtual void readAttributes(const LIBSBML_CPP_NAMESPACE_QUALIFIER XMLAttributes & attributes);
398  virtual void writeAttributes(LIBSBML_CPP_NAMESPACE_QUALIFIER XMLOutputStream & stream) const;
399 
400 // TupleDescription mTupleDescription;
401 // AtomicDescription *mAtomicDescription;
402 
403  std::string mId;
404  std::string mName;
405  std::string mOntologyTerm;
406  std::string mIndexType;
408 
409 
410 
411 
412 };
414 
415 #endif /* __cplusplus */
416 
417 #ifndef SWIG
418 
421 
422 //TODO
423 
426 
427 #endif /* !SWIG */
428 
429 #endif /* COMPOSITEDESCRIPTION_H_ */
This is the base class for all numl objects.
Definition: NMBase.h:70
std::string mIndexType
Definition: CompositeDescription.h:406
virtual int setName(const std::string &name)
Definition: DimensionDescription.cpp:315
virtual const std::string & getId() const
Definition: DimensionDescription.cpp:296
#define BEGIN_C_DECLS
Definition: extern.h:112
#define LIBNUML_CPP_NAMESPACE_BEGIN
Definition: libnuml-namespace.h:71
virtual NMBase * createObject(LIBSBML_CPP_NAMESPACE_QUALIFIER XMLInputStream &stream)
Definition: DimensionDescription.cpp:327
std::string mId
Definition: CompositeDescription.h:403
virtual DimensionDescription * remove(unsigned int n)
Removes the nth item from this DimensionDescription items and returns a pointer to it.
Definition: DimensionDescription.cpp:237
AtomicDescription * createAtomicDescription()
creates a new atomic description and adds it to the dimensiondescription
Definition: DimensionDescription.cpp:145
virtual DimensionDescription * clone() const
Creates and returns a deep copy of this NMBase object.
Definition: DimensionDescription.cpp:172
virtual NUMLTypeCode_t getItemTypeCode() const
Returns the libNUML type code for the objects contained in this NUMLList (i.e., CompositeDescription ...
Definition: DimensionDescription.cpp:183
virtual bool accept(NUMLVisitor &v) const
Accepts the given NUMLVisitor for this instance of NMBase.
Definition: DimensionDescription.cpp:66
virtual const std::string & getName() const
Definition: DimensionDescription.cpp:309
stores the tuple description
Definition: TupleDescription.h:44
NUMLTypeCode_t mContentType
Definition: CompositeDescription.h:407
NUMLTypeCode_t
An enumeration of NUML types to help identify NUML objects at runtime.
Definition: NUMLTypeCodes.h:33
CompositeDescription * createCompositeDescription()
Returns a list of the XML Namespaces declared on this NUML document.
Definition: DimensionDescription.cpp:90
std::string mOntologyTerm
Definition: CompositeDescription.h:405
This represents the numl document that contains all information.
Definition: NUMLDocument.h:106
#define LIBNUML_EXTERN
Begin svn Header.
Definition: extern.h:104
virtual DimensionDescription * get(unsigned int n)
Returns the XML element name of this object.
Definition: DimensionDescription.cpp:190
Implementation of the Visitor design pattern, for operations on NUML objects.
Definition: NUMLVisitor.h:72
namespace class
Definition: NUMLNamespaces.h:46
Definition: NUMLTypeCodes.h:49
This class stores the atomic description.
Definition: AtomicDescription.h:42
std::string mName
Definition: CompositeDescription.h:404
virtual int setId(const std::string &id)
Definition: DimensionDescription.cpp:302
#define END_C_DECLS
Definition: extern.h:113
virtual const std::string & getElementName() const
Returns the XML element name of this object, which for DimensionDescription, is always "model".
Definition: DimensionDescription.cpp:75
#define LIBNUML_CPP_NAMESPACE_END
Definition: libnuml-namespace.h:72
virtual NUMLTypeCode_t getTypeCode() const
Returns the libNUML type code for this NUML object.
Definition: CompositeDescription.h:258
This class stores the dimension description.
Definition: DimensionDescription.h:58
virtual void writeAttributes(LIBSBML_CPP_NAMESPACE_QUALIFIER XMLOutputStream &stream) const
Subclasses should override this method to write their XML attributes to the XMLOutputStream.
Definition: NUMLList.cpp:441
this class stores the component descriptions
Definition: CompositeDescription.h:57
virtual void readAttributes(const LIBSBML_CPP_NAMESPACE_QUALIFIER XMLAttributes &attributes)
Subclasses should override this method to read values from the given XMLAttributes set into their spe...
Definition: NUMLList.cpp:410
TupleDescription * createTupleDescription()
creates a new tupledescription and adds it to the dimensiondescription
Definition: DimensionDescription.cpp:117