Main Page | Modules | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

nedelements.h

Go to the documentation of this file.
00001 //==========================================================================
00002 // Part of the OMNeT++/OMNEST Discrete Event Simulation System
00003 //
00004 // Generated from ned.dtd by dtdclassgen.pl
00005 //
00006 //==========================================================================
00007 
00008 /*--------------------------------------------------------------*
00009   Copyright (C) 2002-2005 Andras Varga
00010 
00011   This file is distributed WITHOUT ANY WARRANTY. See the file
00012   `license' for details on this and other legal matters.
00013 *--------------------------------------------------------------*/
00014 
00015 //
00016 // THIS IS A GENERATED FILE, DO NOT EDIT!
00017 //
00018 
00019 
00020 #ifndef __NEDELEMENTS_H
00021 #define __NEDELEMENTS_H
00022 
00023 #include "nedelement.h"
00024 
00025 class NedFilesNode;
00026 class NedFileNode;
00027 class ImportNode;
00028 class ImportedFileNode;
00029 class ChannelNode;
00030 class ChannelAttrNode;
00031 class NetworkNode;
00032 class SimpleModuleNode;
00033 class CompoundModuleNode;
00034 class ParamsNode;
00035 class ParamNode;
00036 class GatesNode;
00037 class GateNode;
00038 class MachinesNode;
00039 class MachineNode;
00040 class SubmodulesNode;
00041 class SubmoduleNode;
00042 class SubstparamsNode;
00043 class SubstparamNode;
00044 class GatesizesNode;
00045 class GatesizeNode;
00046 class SubstmachinesNode;
00047 class SubstmachineNode;
00048 class ConnectionsNode;
00049 class ConnectionNode;
00050 class ConnAttrNode;
00051 class ForLoopNode;
00052 class LoopVarNode;
00053 class DisplayStringNode;
00054 class ExpressionNode;
00055 class OperatorNode;
00056 class FunctionNode;
00057 class ParamRefNode;
00058 class IdentNode;
00059 class ConstNode;
00060 class CplusplusNode;
00061 class StructDeclNode;
00062 class ClassDeclNode;
00063 class EnumDeclNode;
00064 class EnumNode;
00065 class EnumFieldsNode;
00066 class EnumFieldNode;
00067 class MessageNode;
00068 class ClassNode;
00069 class StructNode;
00070 class FieldsNode;
00071 class FieldNode;
00072 class PropertiesNode;
00073 class PropertyNode;
00074 class UnknownNode;
00075 
00076 
00082 enum NEDElementCode {
00083     NED_NED_FILES,
00084     NED_NED_FILE,
00085     NED_IMPORT,
00086     NED_IMPORTED_FILE,
00087     NED_CHANNEL,
00088     NED_CHANNEL_ATTR,
00089     NED_NETWORK,
00090     NED_SIMPLE_MODULE,
00091     NED_COMPOUND_MODULE,
00092     NED_PARAMS,
00093     NED_PARAM,
00094     NED_GATES,
00095     NED_GATE,
00096     NED_MACHINES,
00097     NED_MACHINE,
00098     NED_SUBMODULES,
00099     NED_SUBMODULE,
00100     NED_SUBSTPARAMS,
00101     NED_SUBSTPARAM,
00102     NED_GATESIZES,
00103     NED_GATESIZE,
00104     NED_SUBSTMACHINES,
00105     NED_SUBSTMACHINE,
00106     NED_CONNECTIONS,
00107     NED_CONNECTION,
00108     NED_CONN_ATTR,
00109     NED_FOR_LOOP,
00110     NED_LOOP_VAR,
00111     NED_DISPLAY_STRING,
00112     NED_EXPRESSION,
00113     NED_OPERATOR,
00114     NED_FUNCTION,
00115     NED_PARAM_REF,
00116     NED_IDENT,
00117     NED_CONST,
00118     NED_CPLUSPLUS,
00119     NED_STRUCT_DECL,
00120     NED_CLASS_DECL,
00121     NED_ENUM_DECL,
00122     NED_ENUM,
00123     NED_ENUM_FIELDS,
00124     NED_ENUM_FIELD,
00125     NED_MESSAGE,
00126     NED_CLASS,
00127     NED_STRUCT,
00128     NED_FIELDS,
00129     NED_FIELD,
00130     NED_PROPERTIES,
00131     NED_PROPERTY,
00132     NED_UNKNOWN,
00133 };
00134 
00135 enum {NED_GATEDIR_INPUT, NED_GATEDIR_OUTPUT};
00136 enum {NED_ARROWDIR_LEFT, NED_ARROWDIR_RIGHT};
00137 enum {NED_CONST_BOOL, NED_CONST_INT, NED_CONST_REAL, NED_CONST_STRING, NED_CONST_TIME};
00138 
00149 class NedFilesNode : public NEDElement
00150 {
00151   private:
00152   public:
00155     NedFilesNode() {applyDefaults();}
00156     NedFilesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00157     virtual ~NedFilesNode() {}
00159 
00162     virtual const char *getTagName() const {return "ned-files";}
00163     virtual int getTagCode() const {return NED_NED_FILES;}
00164     virtual int getNumAttributes() const;
00165     virtual const char *getAttributeName(int k) const;
00166     virtual const char *getAttribute(int k) const;
00167     virtual void setAttribute(int k, const char *val);
00168     virtual const char *getAttributeDefault(int k) const;
00170 
00173 
00174     virtual NedFilesNode *getNextNedFilesNodeSibling() const;
00175     virtual NedFilesNode *getFirstNedFilesChild() const;
00176     virtual NedFileNode *getFirstNedFileChild() const;
00178 };
00179 
00196 class NedFileNode : public NEDElement
00197 {
00198   private:
00199     std::string filename;
00200     std::string sourceCode;
00201     std::string preferredIndent;
00202     std::string bannerComment;
00203   public:
00206     NedFileNode() {applyDefaults();}
00207     NedFileNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00208     virtual ~NedFileNode() {}
00210 
00213     virtual const char *getTagName() const {return "ned-file";}
00214     virtual int getTagCode() const {return NED_NED_FILE;}
00215     virtual int getNumAttributes() const;
00216     virtual const char *getAttributeName(int k) const;
00217     virtual const char *getAttribute(int k) const;
00218     virtual void setAttribute(int k, const char *val);
00219     virtual const char *getAttributeDefault(int k) const;
00221 
00224     const char * getFilename() const  {return filename.c_str();}
00225     void setFilename(const char * val)  {filename = val;}
00226     const char * getSourceCode() const  {return sourceCode.c_str();}
00227     void setSourceCode(const char * val)  {sourceCode = val;}
00228     const char * getPreferredIndent() const  {return preferredIndent.c_str();}
00229     void setPreferredIndent(const char * val)  {preferredIndent = val;}
00230     const char * getBannerComment() const  {return bannerComment.c_str();}
00231     void setBannerComment(const char * val)  {bannerComment = val;}
00232 
00233     virtual NedFileNode *getNextNedFileNodeSibling() const;
00234     virtual ImportNode *getFirstImportChild() const;
00235     virtual ChannelNode *getFirstChannelChild() const;
00236     virtual SimpleModuleNode *getFirstSimpleModuleChild() const;
00237     virtual CompoundModuleNode *getFirstCompoundModuleChild() const;
00238     virtual NetworkNode *getFirstNetworkChild() const;
00239     virtual CplusplusNode *getFirstCplusplusChild() const;
00240     virtual StructDeclNode *getFirstStructDeclChild() const;
00241     virtual ClassDeclNode *getFirstClassDeclChild() const;
00242     virtual EnumDeclNode *getFirstEnumDeclChild() const;
00243     virtual EnumNode *getFirstEnumChild() const;
00244     virtual MessageNode *getFirstMessageChild() const;
00245     virtual ClassNode *getFirstClassChild() const;
00246     virtual StructNode *getFirstStructChild() const;
00248 };
00249 
00262 class ImportNode : public NEDElement
00263 {
00264   private:
00265     std::string bannerComment;
00266     std::string rightComment;
00267   public:
00270     ImportNode() {applyDefaults();}
00271     ImportNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00272     virtual ~ImportNode() {}
00274 
00277     virtual const char *getTagName() const {return "import";}
00278     virtual int getTagCode() const {return NED_IMPORT;}
00279     virtual int getNumAttributes() const;
00280     virtual const char *getAttributeName(int k) const;
00281     virtual const char *getAttribute(int k) const;
00282     virtual void setAttribute(int k, const char *val);
00283     virtual const char *getAttributeDefault(int k) const;
00285 
00288     const char * getBannerComment() const  {return bannerComment.c_str();}
00289     void setBannerComment(const char * val)  {bannerComment = val;}
00290     const char * getRightComment() const  {return rightComment.c_str();}
00291     void setRightComment(const char * val)  {rightComment = val;}
00292 
00293     virtual ImportNode *getNextImportNodeSibling() const;
00294     virtual ImportedFileNode *getFirstImportedFileChild() const;
00296 };
00297 
00311 class ImportedFileNode : public NEDElement
00312 {
00313   private:
00314     std::string filename;
00315     std::string bannerComment;
00316     std::string rightComment;
00317   public:
00320     ImportedFileNode() {applyDefaults();}
00321     ImportedFileNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00322     virtual ~ImportedFileNode() {}
00324 
00327     virtual const char *getTagName() const {return "imported-file";}
00328     virtual int getTagCode() const {return NED_IMPORTED_FILE;}
00329     virtual int getNumAttributes() const;
00330     virtual const char *getAttributeName(int k) const;
00331     virtual const char *getAttribute(int k) const;
00332     virtual void setAttribute(int k, const char *val);
00333     virtual const char *getAttributeDefault(int k) const;
00335 
00338     const char * getFilename() const  {return filename.c_str();}
00339     void setFilename(const char * val)  {filename = val;}
00340     const char * getBannerComment() const  {return bannerComment.c_str();}
00341     void setBannerComment(const char * val)  {bannerComment = val;}
00342     const char * getRightComment() const  {return rightComment.c_str();}
00343     void setRightComment(const char * val)  {rightComment = val;}
00344 
00345     virtual ImportedFileNode *getNextImportedFileNodeSibling() const;
00347 };
00348 
00364 class ChannelNode : public NEDElement
00365 {
00366   private:
00367     std::string name;
00368     std::string sourceCode;
00369     std::string bannerComment;
00370     std::string rightComment;
00371     std::string trailingComment;
00372   public:
00375     ChannelNode() {applyDefaults();}
00376     ChannelNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00377     virtual ~ChannelNode() {}
00379 
00382     virtual const char *getTagName() const {return "channel";}
00383     virtual int getTagCode() const {return NED_CHANNEL;}
00384     virtual int getNumAttributes() const;
00385     virtual const char *getAttributeName(int k) const;
00386     virtual const char *getAttribute(int k) const;
00387     virtual void setAttribute(int k, const char *val);
00388     virtual const char *getAttributeDefault(int k) const;
00390 
00393     const char * getName() const  {return name.c_str();}
00394     void setName(const char * val)  {name = val;}
00395     const char * getSourceCode() const  {return sourceCode.c_str();}
00396     void setSourceCode(const char * val)  {sourceCode = val;}
00397     const char * getBannerComment() const  {return bannerComment.c_str();}
00398     void setBannerComment(const char * val)  {bannerComment = val;}
00399     const char * getRightComment() const  {return rightComment.c_str();}
00400     void setRightComment(const char * val)  {rightComment = val;}
00401     const char * getTrailingComment() const  {return trailingComment.c_str();}
00402     void setTrailingComment(const char * val)  {trailingComment = val;}
00403 
00404     virtual ChannelNode *getNextChannelNodeSibling() const;
00405     virtual ChannelAttrNode *getFirstChannelAttrChild() const;
00406     virtual DisplayStringNode *getFirstDisplayStringChild() const;
00408 };
00409 
00424 class ChannelAttrNode : public NEDElement
00425 {
00426   private:
00427     std::string name;
00428     std::string value;
00429     std::string bannerComment;
00430     std::string rightComment;
00431   public:
00434     ChannelAttrNode() {applyDefaults();}
00435     ChannelAttrNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00436     virtual ~ChannelAttrNode() {}
00438 
00441     virtual const char *getTagName() const {return "channel-attr";}
00442     virtual int getTagCode() const {return NED_CHANNEL_ATTR;}
00443     virtual int getNumAttributes() const;
00444     virtual const char *getAttributeName(int k) const;
00445     virtual const char *getAttribute(int k) const;
00446     virtual void setAttribute(int k, const char *val);
00447     virtual const char *getAttributeDefault(int k) const;
00449 
00452     const char * getName() const  {return name.c_str();}
00453     void setName(const char * val)  {name = val;}
00454     const char * getValue() const  {return value.c_str();}
00455     void setValue(const char * val)  {value = val;}
00456     const char * getBannerComment() const  {return bannerComment.c_str();}
00457     void setBannerComment(const char * val)  {bannerComment = val;}
00458     const char * getRightComment() const  {return rightComment.c_str();}
00459     void setRightComment(const char * val)  {rightComment = val;}
00460 
00461     virtual ChannelAttrNode *getNextChannelAttrNodeSibling() const;
00462     virtual ExpressionNode *getFirstExpressionChild() const;
00464 };
00465 
00482 class NetworkNode : public NEDElement
00483 {
00484   private:
00485     std::string name;
00486     std::string typeName;
00487     std::string sourceCode;
00488     std::string bannerComment;
00489     std::string rightComment;
00490     std::string trailingComment;
00491   public:
00494     NetworkNode() {applyDefaults();}
00495     NetworkNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00496     virtual ~NetworkNode() {}
00498 
00501     virtual const char *getTagName() const {return "network";}
00502     virtual int getTagCode() const {return NED_NETWORK;}
00503     virtual int getNumAttributes() const;
00504     virtual const char *getAttributeName(int k) const;
00505     virtual const char *getAttribute(int k) const;
00506     virtual void setAttribute(int k, const char *val);
00507     virtual const char *getAttributeDefault(int k) const;
00509 
00512     const char * getName() const  {return name.c_str();}
00513     void setName(const char * val)  {name = val;}
00514     const char * getTypeName() const  {return typeName.c_str();}
00515     void setTypeName(const char * val)  {typeName = val;}
00516     const char * getSourceCode() const  {return sourceCode.c_str();}
00517     void setSourceCode(const char * val)  {sourceCode = val;}
00518     const char * getBannerComment() const  {return bannerComment.c_str();}
00519     void setBannerComment(const char * val)  {bannerComment = val;}
00520     const char * getRightComment() const  {return rightComment.c_str();}
00521     void setRightComment(const char * val)  {rightComment = val;}
00522     const char * getTrailingComment() const  {return trailingComment.c_str();}
00523     void setTrailingComment(const char * val)  {trailingComment = val;}
00524 
00525     virtual NetworkNode *getNextNetworkNodeSibling() const;
00526     virtual SubstmachinesNode *getFirstSubstmachinesChild() const;
00527     virtual SubstparamsNode *getFirstSubstparamsChild() const;
00529 };
00530 
00546 class SimpleModuleNode : public NEDElement
00547 {
00548   private:
00549     std::string name;
00550     std::string sourceCode;
00551     std::string bannerComment;
00552     std::string rightComment;
00553     std::string trailingComment;
00554   public:
00557     SimpleModuleNode() {applyDefaults();}
00558     SimpleModuleNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00559     virtual ~SimpleModuleNode() {}
00561 
00564     virtual const char *getTagName() const {return "simple-module";}
00565     virtual int getTagCode() const {return NED_SIMPLE_MODULE;}
00566     virtual int getNumAttributes() const;
00567     virtual const char *getAttributeName(int k) const;
00568     virtual const char *getAttribute(int k) const;
00569     virtual void setAttribute(int k, const char *val);
00570     virtual const char *getAttributeDefault(int k) const;
00572 
00575     const char * getName() const  {return name.c_str();}
00576     void setName(const char * val)  {name = val;}
00577     const char * getSourceCode() const  {return sourceCode.c_str();}
00578     void setSourceCode(const char * val)  {sourceCode = val;}
00579     const char * getBannerComment() const  {return bannerComment.c_str();}
00580     void setBannerComment(const char * val)  {bannerComment = val;}
00581     const char * getRightComment() const  {return rightComment.c_str();}
00582     void setRightComment(const char * val)  {rightComment = val;}
00583     const char * getTrailingComment() const  {return trailingComment.c_str();}
00584     void setTrailingComment(const char * val)  {trailingComment = val;}
00585 
00586     virtual SimpleModuleNode *getNextSimpleModuleNodeSibling() const;
00587     virtual MachinesNode *getFirstMachinesChild() const;
00588     virtual ParamsNode *getFirstParamsChild() const;
00589     virtual GatesNode *getFirstGatesChild() const;
00590     virtual DisplayStringNode *getFirstDisplayStringChild() const;
00592 };
00593 
00610 class CompoundModuleNode : public NEDElement
00611 {
00612   private:
00613     std::string name;
00614     std::string sourceCode;
00615     std::string bannerComment;
00616     std::string rightComment;
00617     std::string trailingComment;
00618   public:
00621     CompoundModuleNode() {applyDefaults();}
00622     CompoundModuleNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00623     virtual ~CompoundModuleNode() {}
00625 
00628     virtual const char *getTagName() const {return "compound-module";}
00629     virtual int getTagCode() const {return NED_COMPOUND_MODULE;}
00630     virtual int getNumAttributes() const;
00631     virtual const char *getAttributeName(int k) const;
00632     virtual const char *getAttribute(int k) const;
00633     virtual void setAttribute(int k, const char *val);
00634     virtual const char *getAttributeDefault(int k) const;
00636 
00639     const char * getName() const  {return name.c_str();}
00640     void setName(const char * val)  {name = val;}
00641     const char * getSourceCode() const  {return sourceCode.c_str();}
00642     void setSourceCode(const char * val)  {sourceCode = val;}
00643     const char * getBannerComment() const  {return bannerComment.c_str();}
00644     void setBannerComment(const char * val)  {bannerComment = val;}
00645     const char * getRightComment() const  {return rightComment.c_str();}
00646     void setRightComment(const char * val)  {rightComment = val;}
00647     const char * getTrailingComment() const  {return trailingComment.c_str();}
00648     void setTrailingComment(const char * val)  {trailingComment = val;}
00649 
00650     virtual CompoundModuleNode *getNextCompoundModuleNodeSibling() const;
00651     virtual MachinesNode *getFirstMachinesChild() const;
00652     virtual ParamsNode *getFirstParamsChild() const;
00653     virtual GatesNode *getFirstGatesChild() const;
00654     virtual SubmodulesNode *getFirstSubmodulesChild() const;
00655     virtual ConnectionsNode *getFirstConnectionsChild() const;
00656     virtual DisplayStringNode *getFirstDisplayStringChild() const;
00658 };
00659 
00672 class ParamsNode : public NEDElement
00673 {
00674   private:
00675     std::string bannerComment;
00676     std::string rightComment;
00677   public:
00680     ParamsNode() {applyDefaults();}
00681     ParamsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00682     virtual ~ParamsNode() {}
00684 
00687     virtual const char *getTagName() const {return "params";}
00688     virtual int getTagCode() const {return NED_PARAMS;}
00689     virtual int getNumAttributes() const;
00690     virtual const char *getAttributeName(int k) const;
00691     virtual const char *getAttribute(int k) const;
00692     virtual void setAttribute(int k, const char *val);
00693     virtual const char *getAttributeDefault(int k) const;
00695 
00698     const char * getBannerComment() const  {return bannerComment.c_str();}
00699     void setBannerComment(const char * val)  {bannerComment = val;}
00700     const char * getRightComment() const  {return rightComment.c_str();}
00701     void setRightComment(const char * val)  {rightComment = val;}
00702 
00703     virtual ParamsNode *getNextParamsNodeSibling() const;
00704     virtual ParamNode *getFirstParamChild() const;
00706 };
00707 
00722 class ParamNode : public NEDElement
00723 {
00724   private:
00725     std::string name;
00726     std::string dataType;
00727     std::string bannerComment;
00728     std::string rightComment;
00729   public:
00732     ParamNode() {applyDefaults();}
00733     ParamNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00734     virtual ~ParamNode() {}
00736 
00739     virtual const char *getTagName() const {return "param";}
00740     virtual int getTagCode() const {return NED_PARAM;}
00741     virtual int getNumAttributes() const;
00742     virtual const char *getAttributeName(int k) const;
00743     virtual const char *getAttribute(int k) const;
00744     virtual void setAttribute(int k, const char *val);
00745     virtual const char *getAttributeDefault(int k) const;
00747 
00750     const char * getName() const  {return name.c_str();}
00751     void setName(const char * val)  {name = val;}
00752     const char * getDataType() const  {return dataType.c_str();}
00753     void setDataType(const char * val)  {dataType = val;}
00754     const char * getBannerComment() const  {return bannerComment.c_str();}
00755     void setBannerComment(const char * val)  {bannerComment = val;}
00756     const char * getRightComment() const  {return rightComment.c_str();}
00757     void setRightComment(const char * val)  {rightComment = val;}
00758 
00759     virtual ParamNode *getNextParamNodeSibling() const;
00761 };
00762 
00775 class GatesNode : public NEDElement
00776 {
00777   private:
00778     std::string bannerComment;
00779     std::string rightComment;
00780   public:
00783     GatesNode() {applyDefaults();}
00784     GatesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00785     virtual ~GatesNode() {}
00787 
00790     virtual const char *getTagName() const {return "gates";}
00791     virtual int getTagCode() const {return NED_GATES;}
00792     virtual int getNumAttributes() const;
00793     virtual const char *getAttributeName(int k) const;
00794     virtual const char *getAttribute(int k) const;
00795     virtual void setAttribute(int k, const char *val);
00796     virtual const char *getAttributeDefault(int k) const;
00798 
00801     const char * getBannerComment() const  {return bannerComment.c_str();}
00802     void setBannerComment(const char * val)  {bannerComment = val;}
00803     const char * getRightComment() const  {return rightComment.c_str();}
00804     void setRightComment(const char * val)  {rightComment = val;}
00805 
00806     virtual GatesNode *getNextGatesNodeSibling() const;
00807     virtual GateNode *getFirstGateChild() const;
00809 };
00810 
00826 class GateNode : public NEDElement
00827 {
00828   private:
00829     std::string name;
00830     int direction;
00831     bool isVector;
00832     std::string bannerComment;
00833     std::string rightComment;
00834   public:
00837     GateNode() {applyDefaults();}
00838     GateNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00839     virtual ~GateNode() {}
00841 
00844     virtual const char *getTagName() const {return "gate";}
00845     virtual int getTagCode() const {return NED_GATE;}
00846     virtual int getNumAttributes() const;
00847     virtual const char *getAttributeName(int k) const;
00848     virtual const char *getAttribute(int k) const;
00849     virtual void setAttribute(int k, const char *val);
00850     virtual const char *getAttributeDefault(int k) const;
00852 
00855     const char * getName() const  {return name.c_str();}
00856     void setName(const char * val)  {name = val;}
00857     int getDirection() const  {return direction;}
00858     void setDirection(int val)  {direction = val;}
00859     bool getIsVector() const  {return isVector;}
00860     void setIsVector(bool val)  {isVector = val;}
00861     const char * getBannerComment() const  {return bannerComment.c_str();}
00862     void setBannerComment(const char * val)  {bannerComment = val;}
00863     const char * getRightComment() const  {return rightComment.c_str();}
00864     void setRightComment(const char * val)  {rightComment = val;}
00865 
00866     virtual GateNode *getNextGateNodeSibling() const;
00868 };
00869 
00882 class MachinesNode : public NEDElement
00883 {
00884   private:
00885     std::string bannerComment;
00886     std::string rightComment;
00887   public:
00890     MachinesNode() {applyDefaults();}
00891     MachinesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00892     virtual ~MachinesNode() {}
00894 
00897     virtual const char *getTagName() const {return "machines";}
00898     virtual int getTagCode() const {return NED_MACHINES;}
00899     virtual int getNumAttributes() const;
00900     virtual const char *getAttributeName(int k) const;
00901     virtual const char *getAttribute(int k) const;
00902     virtual void setAttribute(int k, const char *val);
00903     virtual const char *getAttributeDefault(int k) const;
00905 
00908     const char * getBannerComment() const  {return bannerComment.c_str();}
00909     void setBannerComment(const char * val)  {bannerComment = val;}
00910     const char * getRightComment() const  {return rightComment.c_str();}
00911     void setRightComment(const char * val)  {rightComment = val;}
00912 
00913     virtual MachinesNode *getNextMachinesNodeSibling() const;
00914     virtual MachineNode *getFirstMachineChild() const;
00916 };
00917 
00931 class MachineNode : public NEDElement
00932 {
00933   private:
00934     std::string name;
00935     std::string bannerComment;
00936     std::string rightComment;
00937   public:
00940     MachineNode() {applyDefaults();}
00941     MachineNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00942     virtual ~MachineNode() {}
00944 
00947     virtual const char *getTagName() const {return "machine";}
00948     virtual int getTagCode() const {return NED_MACHINE;}
00949     virtual int getNumAttributes() const;
00950     virtual const char *getAttributeName(int k) const;
00951     virtual const char *getAttribute(int k) const;
00952     virtual void setAttribute(int k, const char *val);
00953     virtual const char *getAttributeDefault(int k) const;
00955 
00958     const char * getName() const  {return name.c_str();}
00959     void setName(const char * val)  {name = val;}
00960     const char * getBannerComment() const  {return bannerComment.c_str();}
00961     void setBannerComment(const char * val)  {bannerComment = val;}
00962     const char * getRightComment() const  {return rightComment.c_str();}
00963     void setRightComment(const char * val)  {rightComment = val;}
00964 
00965     virtual MachineNode *getNextMachineNodeSibling() const;
00967 };
00968 
00981 class SubmodulesNode : public NEDElement
00982 {
00983   private:
00984     std::string bannerComment;
00985     std::string rightComment;
00986   public:
00989     SubmodulesNode() {applyDefaults();}
00990     SubmodulesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00991     virtual ~SubmodulesNode() {}
00993 
00996     virtual const char *getTagName() const {return "submodules";}
00997     virtual int getTagCode() const {return NED_SUBMODULES;}
00998     virtual int getNumAttributes() const;
00999     virtual const char *getAttributeName(int k) const;
01000     virtual const char *getAttribute(int k) const;
01001     virtual void setAttribute(int k, const char *val);
01002     virtual const char *getAttributeDefault(int k) const;
01004 
01007     const char * getBannerComment() const  {return bannerComment.c_str();}
01008     void setBannerComment(const char * val)  {bannerComment = val;}
01009     const char * getRightComment() const  {return rightComment.c_str();}
01010     void setRightComment(const char * val)  {rightComment = val;}
01011 
01012     virtual SubmodulesNode *getNextSubmodulesNodeSibling() const;
01013     virtual SubmoduleNode *getFirstSubmoduleChild() const;
01015 };
01016 
01034 class SubmoduleNode : public NEDElement
01035 {
01036   private:
01037     std::string name;
01038     std::string typeName;
01039     std::string likeParam;
01040     std::string vectorSize;
01041     std::string bannerComment;
01042     std::string rightComment;
01043   public:
01046     SubmoduleNode() {applyDefaults();}
01047     SubmoduleNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01048     virtual ~SubmoduleNode() {}
01050 
01053     virtual const char *getTagName() const {return "submodule";}
01054     virtual int getTagCode() const {return NED_SUBMODULE;}
01055     virtual int getNumAttributes() const;
01056     virtual const char *getAttributeName(int k) const;
01057     virtual const char *getAttribute(int k) const;
01058     virtual void setAttribute(int k, const char *val);
01059     virtual const char *getAttributeDefault(int k) const;
01061 
01064     const char * getName() const  {return name.c_str();}
01065     void setName(const char * val)  {name = val;}
01066     const char * getTypeName() const  {return typeName.c_str();}
01067     void setTypeName(const char * val)  {typeName = val;}
01068     const char * getLikeParam() const  {return likeParam.c_str();}
01069     void setLikeParam(const char * val)  {likeParam = val;}
01070     const char * getVectorSize() const  {return vectorSize.c_str();}
01071     void setVectorSize(const char * val)  {vectorSize = val;}
01072     const char * getBannerComment() const  {return bannerComment.c_str();}
01073     void setBannerComment(const char * val)  {bannerComment = val;}
01074     const char * getRightComment() const  {return rightComment.c_str();}
01075     void setRightComment(const char * val)  {rightComment = val;}
01076 
01077     virtual SubmoduleNode *getNextSubmoduleNodeSibling() const;
01078     virtual ExpressionNode *getFirstExpressionChild() const;
01079     virtual SubstmachinesNode *getFirstSubstmachinesChild() const;
01080     virtual SubstparamsNode *getFirstSubstparamsChild() const;
01081     virtual GatesizesNode *getFirstGatesizesChild() const;
01082     virtual DisplayStringNode *getFirstDisplayStringChild() const;
01084 };
01085 
01099 class SubstparamsNode : public NEDElement
01100 {
01101   private:
01102     std::string condition;
01103     std::string bannerComment;
01104     std::string rightComment;
01105   public:
01108     SubstparamsNode() {applyDefaults();}
01109     SubstparamsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01110     virtual ~SubstparamsNode() {}
01112 
01115     virtual const char *getTagName() const {return "substparams";}
01116     virtual int getTagCode() const {return NED_SUBSTPARAMS;}
01117     virtual int getNumAttributes() const;
01118     virtual const char *getAttributeName(int k) const;
01119     virtual const char *getAttribute(int k) const;
01120     virtual void setAttribute(int k, const char *val);
01121     virtual const char *getAttributeDefault(int k) const;
01123 
01126     const char * getCondition() const  {return condition.c_str();}
01127     void setCondition(const char * val)  {condition = val;}
01128     const char * getBannerComment() const  {return bannerComment.c_str();}
01129     void setBannerComment(const char * val)  {bannerComment = val;}
01130     const char * getRightComment() const  {return rightComment.c_str();}
01131     void setRightComment(const char * val)  {rightComment = val;}
01132 
01133     virtual SubstparamsNode *getNextSubstparamsNodeSibling() const;
01134     virtual ExpressionNode *getFirstExpressionChild() const;
01135     virtual SubstparamNode *getFirstSubstparamChild() const;
01137 };
01138 
01153 class SubstparamNode : public NEDElement
01154 {
01155   private:
01156     std::string name;
01157     std::string value;
01158     std::string bannerComment;
01159     std::string rightComment;
01160   public:
01163     SubstparamNode() {applyDefaults();}
01164     SubstparamNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01165     virtual ~SubstparamNode() {}
01167 
01170     virtual const char *getTagName() const {return "substparam";}
01171     virtual int getTagCode() const {return NED_SUBSTPARAM;}
01172     virtual int getNumAttributes() const;
01173     virtual const char *getAttributeName(int k) const;
01174     virtual const char *getAttribute(int k) const;
01175     virtual void setAttribute(int k, const char *val);
01176     virtual const char *getAttributeDefault(int k) const;
01178 
01181     const char * getName() const  {return name.c_str();}
01182     void setName(const char * val)  {name = val;}
01183     const char * getValue() const  {return value.c_str();}
01184     void setValue(const char * val)  {value = val;}
01185     const char * getBannerComment() const  {return bannerComment.c_str();}
01186     void setBannerComment(const char * val)  {bannerComment = val;}
01187     const char * getRightComment() const  {return rightComment.c_str();}
01188     void setRightComment(const char * val)  {rightComment = val;}
01189 
01190     virtual SubstparamNode *getNextSubstparamNodeSibling() const;
01191     virtual ExpressionNode *getFirstExpressionChild() const;
01193 };
01194 
01208 class GatesizesNode : public NEDElement
01209 {
01210   private:
01211     std::string condition;
01212     std::string bannerComment;
01213     std::string rightComment;
01214   public:
01217     GatesizesNode() {applyDefaults();}
01218     GatesizesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01219     virtual ~GatesizesNode() {}
01221 
01224     virtual const char *getTagName() const {return "gatesizes";}
01225     virtual int getTagCode() const {return NED_GATESIZES;}
01226     virtual int getNumAttributes() const;
01227     virtual const char *getAttributeName(int k) const;
01228     virtual const char *getAttribute(int k) const;
01229     virtual void setAttribute(int k, const char *val);
01230     virtual const char *getAttributeDefault(int k) const;
01232 
01235     const char * getCondition() const  {return condition.c_str();}
01236     void setCondition(const char * val)  {condition = val;}
01237     const char * getBannerComment() const  {return bannerComment.c_str();}
01238     void setBannerComment(const char * val)  {bannerComment = val;}
01239     const char * getRightComment() const  {return rightComment.c_str();}
01240     void setRightComment(const char * val)  {rightComment = val;}
01241 
01242     virtual GatesizesNode *getNextGatesizesNodeSibling() const;
01243     virtual ExpressionNode *getFirstExpressionChild() const;
01244     virtual GatesizeNode *getFirstGatesizeChild() const;
01246 };
01247 
01262 class GatesizeNode : public NEDElement
01263 {
01264   private:
01265     std::string name;
01266     std::string vectorSize;
01267     std::string bannerComment;
01268     std::string rightComment;
01269   public:
01272     GatesizeNode() {applyDefaults();}
01273     GatesizeNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01274     virtual ~GatesizeNode() {}
01276 
01279     virtual const char *getTagName() const {return "gatesize";}
01280     virtual int getTagCode() const {return NED_GATESIZE;}
01281     virtual int getNumAttributes() const;
01282     virtual const char *getAttributeName(int k) const;
01283     virtual const char *getAttribute(int k) const;
01284     virtual void setAttribute(int k, const char *val);
01285     virtual const char *getAttributeDefault(int k) const;
01287 
01290     const char * getName() const  {return name.c_str();}
01291     void setName(const char * val)  {name = val;}
01292     const char * getVectorSize() const  {return vectorSize.c_str();}
01293     void setVectorSize(const char * val)  {vectorSize = val;}
01294     const char * getBannerComment() const  {return bannerComment.c_str();}
01295     void setBannerComment(const char * val)  {bannerComment = val;}
01296     const char * getRightComment() const  {return rightComment.c_str();}
01297     void setRightComment(const char * val)  {rightComment = val;}
01298 
01299     virtual GatesizeNode *getNextGatesizeNodeSibling() const;
01300     virtual ExpressionNode *getFirstExpressionChild() const;
01302 };
01303 
01317 class SubstmachinesNode : public NEDElement
01318 {
01319   private:
01320     std::string condition;
01321     std::string bannerComment;
01322     std::string rightComment;
01323   public:
01326     SubstmachinesNode() {applyDefaults();}
01327     SubstmachinesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01328     virtual ~SubstmachinesNode() {}
01330 
01333     virtual const char *getTagName() const {return "substmachines";}
01334     virtual int getTagCode() const {return NED_SUBSTMACHINES;}
01335     virtual int getNumAttributes() const;
01336     virtual const char *getAttributeName(int k) const;
01337     virtual const char *getAttribute(int k) const;
01338     virtual void setAttribute(int k, const char *val);
01339     virtual const char *getAttributeDefault(int k) const;
01341 
01344     const char * getCondition() const  {return condition.c_str();}
01345     void setCondition(const char * val)  {condition = val;}
01346     const char * getBannerComment() const  {return bannerComment.c_str();}
01347     void setBannerComment(const char * val)  {bannerComment = val;}
01348     const char * getRightComment() const  {return rightComment.c_str();}
01349     void setRightComment(const char * val)  {rightComment = val;}
01350 
01351     virtual SubstmachinesNode *getNextSubstmachinesNodeSibling() const;
01352     virtual ExpressionNode *getFirstExpressionChild() const;
01353     virtual SubstmachineNode *getFirstSubstmachineChild() const;
01355 };
01356 
01370 class SubstmachineNode : public NEDElement
01371 {
01372   private:
01373     std::string name;
01374     std::string bannerComment;
01375     std::string rightComment;
01376   public:
01379     SubstmachineNode() {applyDefaults();}
01380     SubstmachineNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01381     virtual ~SubstmachineNode() {}
01383 
01386     virtual const char *getTagName() const {return "substmachine";}
01387     virtual int getTagCode() const {return NED_SUBSTMACHINE;}
01388     virtual int getNumAttributes() const;
01389     virtual const char *getAttributeName(int k) const;
01390     virtual const char *getAttribute(int k) const;
01391     virtual void setAttribute(int k, const char *val);
01392     virtual const char *getAttributeDefault(int k) const;
01394 
01397     const char * getName() const  {return name.c_str();}
01398     void setName(const char * val)  {name = val;}
01399     const char * getBannerComment() const  {return bannerComment.c_str();}
01400     void setBannerComment(const char * val)  {bannerComment = val;}
01401     const char * getRightComment() const  {return rightComment.c_str();}
01402     void setRightComment(const char * val)  {rightComment = val;}
01403 
01404     virtual SubstmachineNode *getNextSubstmachineNodeSibling() const;
01406 };
01407 
01421 class ConnectionsNode : public NEDElement
01422 {
01423   private:
01424     bool checkUnconnected;
01425     std::string bannerComment;
01426     std::string rightComment;
01427   public:
01430     ConnectionsNode() {applyDefaults();}
01431     ConnectionsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01432     virtual ~ConnectionsNode() {}
01434 
01437     virtual const char *getTagName() const {return "connections";}
01438     virtual int getTagCode() const {return NED_CONNECTIONS;}
01439     virtual int getNumAttributes() const;
01440     virtual const char *getAttributeName(int k) const;
01441     virtual const char *getAttribute(int k) const;
01442     virtual void setAttribute(int k, const char *val);
01443     virtual const char *getAttributeDefault(int k) const;
01445 
01448     bool getCheckUnconnected() const  {return checkUnconnected;}
01449     void setCheckUnconnected(bool val)  {checkUnconnected = val;}
01450     const char * getBannerComment() const  {return bannerComment.c_str();}
01451     void setBannerComment(const char * val)  {bannerComment = val;}
01452     const char * getRightComment() const  {return rightComment.c_str();}
01453     void setRightComment(const char * val)  {rightComment = val;}
01454 
01455     virtual ConnectionsNode *getNextConnectionsNodeSibling() const;
01456     virtual ConnectionNode *getFirstConnectionChild() const;
01457     virtual ForLoopNode *getFirstForLoopChild() const;
01459 };
01460 
01485 class ConnectionNode : public NEDElement
01486 {
01487   private:
01488     std::string condition;
01489     std::string srcModule;
01490     std::string srcModuleIndex;
01491     std::string srcGate;
01492     bool srcGatePlusplus;
01493     std::string srcGateIndex;
01494     std::string destModule;
01495     std::string destModuleIndex;
01496     std::string destGate;
01497     bool destGatePlusplus;
01498     std::string destGateIndex;
01499     int arrowDirection;
01500     std::string bannerComment;
01501     std::string rightComment;
01502   public:
01505     ConnectionNode() {applyDefaults();}
01506     ConnectionNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01507     virtual ~ConnectionNode() {}
01509 
01512     virtual const char *getTagName() const {return "connection";}
01513     virtual int getTagCode() const {return NED_CONNECTION;}
01514     virtual int getNumAttributes() const;
01515     virtual const char *getAttributeName(int k) const;
01516     virtual const char *getAttribute(int k) const;
01517     virtual void setAttribute(int k, const char *val);
01518     virtual const char *getAttributeDefault(int k) const;
01520 
01523     const char * getCondition() const  {return condition.c_str();}
01524     void setCondition(const char * val)  {condition = val;}
01525     const char * getSrcModule() const  {return srcModule.c_str();}
01526     void setSrcModule(const char * val)  {srcModule = val;}
01527     const char * getSrcModuleIndex() const  {return srcModuleIndex.c_str();}
01528     void setSrcModuleIndex(const char * val)  {srcModuleIndex = val;}
01529     const char * getSrcGate() const  {return srcGate.c_str();}
01530     void setSrcGate(const char * val)  {srcGate = val;}
01531     bool getSrcGatePlusplus() const  {return srcGatePlusplus;}
01532     void setSrcGatePlusplus(bool val)  {srcGatePlusplus = val;}
01533     const char * getSrcGateIndex() const  {return srcGateIndex.c_str();}
01534     void setSrcGateIndex(const char * val)  {srcGateIndex = val;}
01535     const char * getDestModule() const  {return destModule.c_str();}
01536     void setDestModule(const char * val)  {destModule = val;}
01537     const char * getDestModuleIndex() const  {return destModuleIndex.c_str();}
01538     void setDestModuleIndex(const char * val)  {destModuleIndex = val;}
01539     const char * getDestGate() const  {return destGate.c_str();}
01540     void setDestGate(const char * val)  {destGate = val;}
01541     bool getDestGatePlusplus() const  {return destGatePlusplus;}
01542     void setDestGatePlusplus(bool val)  {destGatePlusplus = val;}
01543     const char * getDestGateIndex() const  {return destGateIndex.c_str();}
01544     void setDestGateIndex(const char * val)  {destGateIndex = val;}
01545     int getArrowDirection() const  {return arrowDirection;}
01546     void setArrowDirection(int val)  {arrowDirection = val;}
01547     const char * getBannerComment() const  {return bannerComment.c_str();}
01548     void setBannerComment(const char * val)  {bannerComment = val;}
01549     const char * getRightComment() const  {return rightComment.c_str();}
01550     void setRightComment(const char * val)  {rightComment = val;}
01551 
01552     virtual ConnectionNode *getNextConnectionNodeSibling() const;
01553     virtual ExpressionNode *getFirstExpressionChild() const;
01554     virtual ConnAttrNode *getFirstConnAttrChild() const;
01555     virtual DisplayStringNode *getFirstDisplayStringChild() const;
01557 };
01558 
01572 class ConnAttrNode : public NEDElement
01573 {
01574   private:
01575     std::string name;
01576     std::string value;
01577     std::string rightComment;
01578   public:
01581     ConnAttrNode() {applyDefaults();}
01582     ConnAttrNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01583     virtual ~ConnAttrNode() {}
01585 
01588     virtual const char *getTagName() const {return "conn-attr";}
01589     virtual int getTagCode() const {return NED_CONN_ATTR;}
01590     virtual int getNumAttributes() const;
01591     virtual const char *getAttributeName(int k) const;
01592     virtual const char *getAttribute(int k) const;
01593     virtual void setAttribute(int k, const char *val);
01594     virtual const char *getAttributeDefault(int k) const;
01596 
01599     const char * getName() const  {return name.c_str();}
01600     void setName(const char * val)  {name = val;}
01601     const char * getValue() const  {return value.c_str();}
01602     void setValue(const char * val)  {value = val;}
01603     const char * getRightComment() const  {return rightComment.c_str();}
01604     void setRightComment(const char * val)  {rightComment = val;}
01605 
01606     virtual ConnAttrNode *getNextConnAttrNodeSibling() const;
01607     virtual ExpressionNode *getFirstExpressionChild() const;
01609 };
01610 
01624 class ForLoopNode : public NEDElement
01625 {
01626   private:
01627     std::string bannerComment;
01628     std::string rightComment;
01629     std::string trailingComment;
01630   public:
01633     ForLoopNode() {applyDefaults();}
01634     ForLoopNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01635     virtual ~ForLoopNode() {}
01637 
01640     virtual const char *getTagName() const {return "for-loop";}
01641     virtual int getTagCode() const {return NED_FOR_LOOP;}
01642     virtual int getNumAttributes() const;
01643     virtual const char *getAttributeName(int k) const;
01644     virtual const char *getAttribute(int k) const;
01645     virtual void setAttribute(int k, const char *val);
01646     virtual const char *getAttributeDefault(int k) const;
01648 
01651     const char * getBannerComment() const  {return bannerComment.c_str();}
01652     void setBannerComment(const char * val)  {bannerComment = val;}
01653     const char * getRightComment() const  {return rightComment.c_str();}
01654     void setRightComment(const char * val)  {rightComment = val;}
01655     const char * getTrailingComment() const  {return trailingComment.c_str();}
01656     void setTrailingComment(const char * val)  {trailingComment = val;}
01657 
01658     virtual ForLoopNode *getNextForLoopNodeSibling() const;
01659     virtual LoopVarNode *getFirstLoopVarChild() const;
01660     virtual ConnectionNode *getFirstConnectionChild() const;
01662 };
01663 
01679 class LoopVarNode : public NEDElement
01680 {
01681   private:
01682     std::string paramName;
01683     std::string fromValue;
01684     std::string toValue;
01685     std::string bannerComment;
01686     std::string rightComment;
01687   public:
01690     LoopVarNode() {applyDefaults();}
01691     LoopVarNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01692     virtual ~LoopVarNode() {}
01694 
01697     virtual const char *getTagName() const {return "loop-var";}
01698     virtual int getTagCode() const {return NED_LOOP_VAR;}
01699     virtual int getNumAttributes() const;
01700     virtual const char *getAttributeName(int k) const;
01701     virtual const char *getAttribute(int k) const;
01702     virtual void setAttribute(int k, const char *val);
01703     virtual const char *getAttributeDefault(int k) const;
01705 
01708     const char * getParamName() const  {return paramName.c_str();}
01709     void setParamName(const char * val)  {paramName = val;}
01710     const char * getFromValue() const  {return fromValue.c_str();}
01711     void setFromValue(const char * val)  {fromValue = val;}
01712     const char * getToValue() const  {return toValue.c_str();}
01713     void setToValue(const char * val)  {toValue = val;}
01714     const char * getBannerComment() const  {return bannerComment.c_str();}
01715     void setBannerComment(const char * val)  {bannerComment = val;}
01716     const char * getRightComment() const  {return rightComment.c_str();}
01717     void setRightComment(const char * val)  {rightComment = val;}
01718 
01719     virtual LoopVarNode *getNextLoopVarNodeSibling() const;
01720     virtual ExpressionNode *getFirstExpressionChild() const;
01722 };
01723 
01737 class DisplayStringNode : public NEDElement
01738 {
01739   private:
01740     std::string value;
01741     std::string bannerComment;
01742     std::string rightComment;
01743   public:
01746     DisplayStringNode() {applyDefaults();}
01747     DisplayStringNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01748     virtual ~DisplayStringNode() {}
01750 
01753     virtual const char *getTagName() const {return "display-string";}
01754     virtual int getTagCode() const {return NED_DISPLAY_STRING;}
01755     virtual int getNumAttributes() const;
01756     virtual const char *getAttributeName(int k) const;
01757     virtual const char *getAttribute(int k) const;
01758     virtual void setAttribute(int k, const char *val);
01759     virtual const char *getAttributeDefault(int k) const;
01761 
01764     const char * getValue() const  {return value.c_str();}
01765     void setValue(const char * val)  {value = val;}
01766     const char * getBannerComment() const  {return bannerComment.c_str();}
01767     void setBannerComment(const char * val)  {bannerComment = val;}
01768     const char * getRightComment() const  {return rightComment.c_str();}
01769     void setRightComment(const char * val)  {rightComment = val;}
01770 
01771     virtual DisplayStringNode *getNextDisplayStringNodeSibling() const;
01773 };
01774 
01786 class ExpressionNode : public NEDElement
01787 {
01788   private:
01789     std::string target;
01790   public:
01793     ExpressionNode() {applyDefaults();}
01794     ExpressionNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01795     virtual ~ExpressionNode() {}
01797 
01800     virtual const char *getTagName() const {return "expression";}
01801     virtual int getTagCode() const {return NED_EXPRESSION;}
01802     virtual int getNumAttributes() const;
01803     virtual const char *getAttributeName(int k) const;
01804     virtual const char *getAttribute(int k) const;
01805     virtual void setAttribute(int k, const char *val);
01806     virtual const char *getAttributeDefault(int k) const;
01808 
01811     const char * getTarget() const  {return target.c_str();}
01812     void setTarget(const char * val)  {target = val;}
01813 
01814     virtual ExpressionNode *getNextExpressionNodeSibling() const;
01815     virtual OperatorNode *getFirstOperatorChild() const;
01816     virtual FunctionNode *getFirstFunctionChild() const;
01817     virtual ParamRefNode *getFirstParamRefChild() const;
01818     virtual IdentNode *getFirstIdentChild() const;
01819     virtual ConstNode *getFirstConstChild() const;
01821 };
01822 
01834 class OperatorNode : public NEDElement
01835 {
01836   private:
01837     std::string name;
01838   public:
01841     OperatorNode() {applyDefaults();}
01842     OperatorNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01843     virtual ~OperatorNode() {}
01845 
01848     virtual const char *getTagName() const {return "operator";}
01849     virtual int getTagCode() const {return NED_OPERATOR;}
01850     virtual int getNumAttributes() const;
01851     virtual const char *getAttributeName(int k) const;
01852     virtual const char *getAttribute(int k) const;
01853     virtual void setAttribute(int k, const char *val);
01854     virtual const char *getAttributeDefault(int k) const;
01856 
01859     const char * getName() const  {return name.c_str();}
01860     void setName(const char * val)  {name = val;}
01861 
01862     virtual OperatorNode *getNextOperatorNodeSibling() const;
01863     virtual OperatorNode *getFirstOperatorChild() const;
01864     virtual FunctionNode *getFirstFunctionChild() const;
01865     virtual ParamRefNode *getFirstParamRefChild() const;
01866     virtual IdentNode *getFirstIdentChild() const;
01867     virtual ConstNode *getFirstConstChild() const;
01869 };
01870 
01882 class FunctionNode : public NEDElement
01883 {
01884   private:
01885     std::string name;
01886   public:
01889     FunctionNode() {applyDefaults();}
01890     FunctionNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01891     virtual ~FunctionNode() {}
01893 
01896     virtual const char *getTagName() const {return "function";}
01897     virtual int getTagCode() const {return NED_FUNCTION;}
01898     virtual int getNumAttributes() const;
01899     virtual const char *getAttributeName(int k) const;
01900     virtual const char *getAttribute(int k) const;
01901     virtual void setAttribute(int k, const char *val);
01902     virtual const char *getAttributeDefault(int k) const;
01904 
01907     const char * getName() const  {return name.c_str();}
01908     void setName(const char * val)  {name = val;}
01909 
01910     virtual FunctionNode *getNextFunctionNodeSibling() const;
01911     virtual OperatorNode *getFirstOperatorChild() const;
01912     virtual FunctionNode *getFirstFunctionChild() const;
01913     virtual ParamRefNode *getFirstParamRefChild() const;
01914     virtual IdentNode *getFirstIdentChild() const;
01915     virtual ConstNode *getFirstConstChild() const;
01917 };
01918 
01935 class ParamRefNode : public NEDElement
01936 {
01937   private:
01938     std::string module;
01939     std::string moduleIndex;
01940     std::string paramName;
01941     std::string paramIndex;
01942     bool isRef;
01943     bool isAncestor;
01944   public:
01947     ParamRefNode() {applyDefaults();}
01948     ParamRefNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01949     virtual ~ParamRefNode() {}
01951 
01954     virtual const char *getTagName() const {return "param-ref";}
01955     virtual int getTagCode() const {return NED_PARAM_REF;}
01956     virtual int getNumAttributes() const;
01957     virtual const char *getAttributeName(int k) const;
01958     virtual const char *getAttribute(int k) const;
01959     virtual void setAttribute(int k, const char *val);
01960     virtual const char *getAttributeDefault(int k) const;
01962 
01965     const char * getModule() const  {return module.c_str();}
01966     void setModule(const char * val)  {module = val;}
01967     const char * getModuleIndex() const  {return moduleIndex.c_str();}
01968     void setModuleIndex(const char * val)  {moduleIndex = val;}
01969     const char * getParamName() const  {return paramName.c_str();}
01970     void setParamName(const char * val)  {paramName = val;}
01971     const char * getParamIndex() const  {return paramIndex.c_str();}
01972     void setParamIndex(const char * val)  {paramIndex = val;}
01973     bool getIsRef() const  {return isRef;}
01974     void setIsRef(bool val)  {isRef = val;}
01975     bool getIsAncestor() const  {return isAncestor;}
01976     void setIsAncestor(bool val)  {isAncestor = val;}
01977 
01978     virtual ParamRefNode *getNextParamRefNodeSibling() const;
01979     virtual ExpressionNode *getFirstExpressionChild() const;
01981 };
01982 
01994 class IdentNode : public NEDElement
01995 {
01996   private:
01997     std::string name;
01998   public:
02001     IdentNode() {applyDefaults();}
02002     IdentNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02003     virtual ~IdentNode() {}
02005 
02008     virtual const char *getTagName() const {return "ident";}
02009     virtual int getTagCode() const {return NED_IDENT;}
02010     virtual int getNumAttributes() const;
02011     virtual const char *getAttributeName(int k) const;
02012     virtual const char *getAttribute(int k) const;
02013     virtual void setAttribute(int k, const char *val);
02014     virtual const char *getAttributeDefault(int k) const;
02016 
02019     const char * getName() const  {return name.c_str();}
02020     void setName(const char * val)  {name = val;}
02021 
02022     virtual IdentNode *getNextIdentNodeSibling() const;
02024 };
02025 
02039 class ConstNode : public NEDElement
02040 {
02041   private:
02042     int type;
02043     std::string text;
02044     std::string value;
02045   public:
02048     ConstNode() {applyDefaults();}
02049     ConstNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02050     virtual ~ConstNode() {}
02052 
02055     virtual const char *getTagName() const {return "const";}
02056     virtual int getTagCode() const {return NED_CONST;}
02057     virtual int getNumAttributes() const;
02058     virtual const char *getAttributeName(int k) const;
02059     virtual const char *getAttribute(int k) const;
02060     virtual void setAttribute(int k, const char *val);
02061     virtual const char *getAttributeDefault(int k) const;
02063 
02066     int getType() const  {return type;}
02067     void setType(int val)  {type = val;}
02068     const char * getText() const  {return text.c_str();}
02069     void setText(const char * val)  {text = val;}
02070     const char * getValue() const  {return value.c_str();}
02071     void setValue(const char * val)  {value = val;}
02072 
02073     virtual ConstNode *getNextConstNodeSibling() const;
02075 };
02076 
02091 class CplusplusNode : public NEDElement
02092 {
02093   private:
02094     std::string body;
02095     std::string bannerComment;
02096     std::string rightComment;
02097     std::string trailingComment;
02098   public:
02101     CplusplusNode() {applyDefaults();}
02102     CplusplusNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02103     virtual ~CplusplusNode() {}
02105 
02108     virtual const char *getTagName() const {return "cplusplus";}
02109     virtual int getTagCode() const {return NED_CPLUSPLUS;}
02110     virtual int getNumAttributes() const;
02111     virtual const char *getAttributeName(int k) const;
02112     virtual const char *getAttribute(int k) const;
02113     virtual void setAttribute(int k, const char *val);
02114     virtual const char *getAttributeDefault(int k) const;
02116 
02119     const char * getBody() const  {return body.c_str();}
02120     void setBody(const char * val)  {body = val;}
02121     const char * getBannerComment() const  {return bannerComment.c_str();}
02122     void setBannerComment(const char * val)  {bannerComment = val;}
02123     const char * getRightComment() const  {return rightComment.c_str();}
02124     void setRightComment(const char * val)  {rightComment = val;}
02125     const char * getTrailingComment() const  {return trailingComment.c_str();}
02126     void setTrailingComment(const char * val)  {trailingComment = val;}
02127 
02128     virtual CplusplusNode *getNextCplusplusNodeSibling() const;
02130 };
02131 
02146 class StructDeclNode : public NEDElement
02147 {
02148   private:
02149     std::string name;
02150     std::string bannerComment;
02151     std::string rightComment;
02152     std::string trailingComment;
02153   public:
02156     StructDeclNode() {applyDefaults();}
02157     StructDeclNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02158     virtual ~StructDeclNode() {}
02160 
02163     virtual const char *getTagName() const {return "struct-decl";}
02164     virtual int getTagCode() const {return NED_STRUCT_DECL;}
02165     virtual int getNumAttributes() const;
02166     virtual const char *getAttributeName(int k) const;
02167     virtual const char *getAttribute(int k) const;
02168     virtual void setAttribute(int k, const char *val);
02169     virtual const char *getAttributeDefault(int k) const;
02171 
02174     const char * getName() const  {return name.c_str();}
02175     void setName(const char * val)  {name = val;}
02176     const char * getBannerComment() const  {return bannerComment.c_str();}
02177     void setBannerComment(const char * val)  {bannerComment = val;}
02178     const char * getRightComment() const  {return rightComment.c_str();}
02179     void setRightComment(const char * val)  {rightComment = val;}
02180     const char * getTrailingComment() const  {return trailingComment.c_str();}
02181     void setTrailingComment(const char * val)  {trailingComment = val;}
02182 
02183     virtual StructDeclNode *getNextStructDeclNodeSibling() const;
02185 };
02186 
02202 class ClassDeclNode : public NEDElement
02203 {
02204   private:
02205     std::string name;
02206     bool isCobject;
02207     std::string bannerComment;
02208     std::string rightComment;
02209     std::string trailingComment;
02210   public:
02213     ClassDeclNode() {applyDefaults();}
02214     ClassDeclNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02215     virtual ~ClassDeclNode() {}
02217 
02220     virtual const char *getTagName() const {return "class-decl";}
02221     virtual int getTagCode() const {return NED_CLASS_DECL;}
02222     virtual int getNumAttributes() const;
02223     virtual const char *getAttributeName(int k) const;
02224     virtual const char *getAttribute(int k) const;
02225     virtual void setAttribute(int k, const char *val);
02226     virtual const char *getAttributeDefault(int k) const;
02228 
02231     const char * getName() const  {return name.c_str();}
02232     void setName(const char * val)  {name = val;}
02233     bool getIsCobject() const  {return isCobject;}
02234     void setIsCobject(bool val)  {isCobject = val;}
02235     const char * getBannerComment() const  {return bannerComment.c_str();}
02236     void setBannerComment(const char * val)  {bannerComment = val;}
02237     const char * getRightComment() const  {return rightComment.c_str();}
02238     void setRightComment(const char * val)  {rightComment = val;}
02239     const char * getTrailingComment() const  {return trailingComment.c_str();}
02240     void setTrailingComment(const char * val)  {trailingComment = val;}
02241 
02242     virtual ClassDeclNode *getNextClassDeclNodeSibling() const;
02244 };
02245 
02260 class EnumDeclNode : public NEDElement
02261 {
02262   private:
02263     std::string name;
02264     std::string bannerComment;
02265     std::string rightComment;
02266     std::string trailingComment;
02267   public:
02270     EnumDeclNode() {applyDefaults();}
02271     EnumDeclNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02272     virtual ~EnumDeclNode() {}
02274 
02277     virtual const char *getTagName() const {return "enum-decl";}
02278     virtual int getTagCode() const {return NED_ENUM_DECL;}
02279     virtual int getNumAttributes() const;
02280     virtual const char *getAttributeName(int k) const;
02281     virtual const char *getAttribute(int k) const;
02282     virtual void setAttribute(int k, const char *val);
02283     virtual const char *getAttributeDefault(int k) const;
02285 
02288     const char * getName() const  {return name.c_str();}
02289     void setName(const char * val)  {name = val;}
02290     const char * getBannerComment() const  {return bannerComment.c_str();}
02291     void setBannerComment(const char * val)  {bannerComment = val;}
02292     const char * getRightComment() const  {return rightComment.c_str();}
02293     void setRightComment(const char * val)  {rightComment = val;}
02294     const char * getTrailingComment() const  {return trailingComment.c_str();}
02295     void setTrailingComment(const char * val)  {trailingComment = val;}
02296 
02297     virtual EnumDeclNode *getNextEnumDeclNodeSibling() const;
02299 };
02300 
02317 class EnumNode : public NEDElement
02318 {
02319   private:
02320     std::string name;
02321     std::string extendsName;
02322     std::string sourceCode;
02323     std::string bannerComment;
02324     std::string rightComment;
02325     std::string trailingComment;
02326   public:
02329     EnumNode() {applyDefaults();}
02330     EnumNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02331     virtual ~EnumNode() {}
02333 
02336     virtual const char *getTagName() const {return "enum";}
02337     virtual int getTagCode() const {return NED_ENUM;}
02338     virtual int getNumAttributes() const;
02339     virtual const char *getAttributeName(int k) const;
02340     virtual const char *getAttribute(int k) const;
02341     virtual void setAttribute(int k, const char *val);
02342     virtual const char *getAttributeDefault(int k) const;
02344 
02347     const char * getName() const  {return name.c_str();}
02348     void setName(const char * val)  {name = val;}
02349     const char * getExtendsName() const  {return extendsName.c_str();}
02350     void setExtendsName(const char * val)  {extendsName = val;}
02351     const char * getSourceCode() const  {return sourceCode.c_str();}
02352     void setSourceCode(const char * val)  {sourceCode = val;}
02353     const char * getBannerComment() const  {return bannerComment.c_str();}
02354     void setBannerComment(const char * val)  {bannerComment = val;}
02355     const char * getRightComment() const  {return rightComment.c_str();}
02356     void setRightComment(const char * val)  {rightComment = val;}
02357     const char * getTrailingComment() const  {return trailingComment.c_str();}
02358     void setTrailingComment(const char * val)  {trailingComment = val;}
02359 
02360     virtual EnumNode *getNextEnumNodeSibling() const;
02361     virtual EnumFieldsNode *getFirstEnumFieldsChild() const;
02363 };
02364 
02377 class EnumFieldsNode : public NEDElement
02378 {
02379   private:
02380     std::string bannerComment;
02381     std::string rightComment;
02382   public:
02385     EnumFieldsNode() {applyDefaults();}
02386     EnumFieldsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02387     virtual ~EnumFieldsNode() {}
02389 
02392     virtual const char *getTagName() const {return "enum-fields";}
02393     virtual int getTagCode() const {return NED_ENUM_FIELDS;}
02394     virtual int getNumAttributes() const;
02395     virtual const char *getAttributeName(int k) const;
02396     virtual const char *getAttribute(int k) const;
02397     virtual void setAttribute(int k, const char *val);
02398     virtual const char *getAttributeDefault(int k) const;
02400 
02403     const char * getBannerComment() const  {return bannerComment.c_str();}
02404     void setBannerComment(const char * val)  {bannerComment = val;}
02405     const char * getRightComment() const  {return rightComment.c_str();}
02406     void setRightComment(const char * val)  {rightComment = val;}
02407 
02408     virtual EnumFieldsNode *getNextEnumFieldsNodeSibling() const;
02409     virtual EnumFieldNode *getFirstEnumFieldChild() const;
02411 };
02412 
02427 class EnumFieldNode : public NEDElement
02428 {
02429   private:
02430     std::string name;
02431     std::string value;
02432     std::string bannerComment;
02433     std::string rightComment;
02434   public:
02437     EnumFieldNode() {applyDefaults();}
02438     EnumFieldNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02439     virtual ~EnumFieldNode() {}
02441 
02444     virtual const char *getTagName() const {return "enum-field";}
02445     virtual int getTagCode() const {return NED_ENUM_FIELD;}
02446     virtual int getNumAttributes() const;
02447     virtual const char *getAttributeName(int k) const;
02448     virtual const char *getAttribute(int k) const;
02449     virtual void setAttribute(int k, const char *val);
02450     virtual const char *getAttributeDefault(int k) const;
02452 
02455     const char * getName() const  {return name.c_str();}
02456     void setName(const char * val)  {name = val;}
02457     const char * getValue() const  {return value.c_str();}
02458     void setValue(const char * val)  {value = val;}
02459     const char * getBannerComment() const  {return bannerComment.c_str();}
02460     void setBannerComment(const char * val)  {bannerComment = val;}
02461     const char * getRightComment() const  {return rightComment.c_str();}
02462     void setRightComment(const char * val)  {rightComment = val;}
02463 
02464     virtual EnumFieldNode *getNextEnumFieldNodeSibling() const;
02466 };
02467 
02484 class MessageNode : public NEDElement
02485 {
02486   private:
02487     std::string name;
02488     std::string extendsName;
02489     std::string sourceCode;
02490     std::string bannerComment;
02491     std::string rightComment;
02492     std::string trailingComment;
02493   public:
02496     MessageNode() {applyDefaults();}
02497     MessageNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02498     virtual ~MessageNode() {}
02500 
02503     virtual const char *getTagName() const {return "message";}
02504     virtual int getTagCode() const {return NED_MESSAGE;}
02505     virtual int getNumAttributes() const;
02506     virtual const char *getAttributeName(int k) const;
02507     virtual const char *getAttribute(int k) const;
02508     virtual void setAttribute(int k, const char *val);
02509     virtual const char *getAttributeDefault(int k) const;
02511 
02514     const char * getName() const  {return name.c_str();}
02515     void setName(const char * val)  {name = val;}
02516     const char * getExtendsName() const  {return extendsName.c_str();}
02517     void setExtendsName(const char * val)  {extendsName = val;}
02518     const char * getSourceCode() const  {return sourceCode.c_str();}
02519     void setSourceCode(const char * val)  {sourceCode = val;}
02520     const char * getBannerComment() const  {return bannerComment.c_str();}
02521     void setBannerComment(const char * val)  {bannerComment = val;}
02522     const char * getRightComment() const  {return rightComment.c_str();}
02523     void setRightComment(const char * val)  {rightComment = val;}
02524     const char * getTrailingComment() const  {return trailingComment.c_str();}
02525     void setTrailingComment(const char * val)  {trailingComment = val;}
02526 
02527     virtual MessageNode *getNextMessageNodeSibling() const;
02528     virtual PropertiesNode *getFirstPropertiesChild() const;
02529     virtual FieldsNode *getFirstFieldsChild() const;
02531 };
02532 
02549 class ClassNode : public NEDElement
02550 {
02551   private:
02552     std::string name;
02553     std::string extendsName;
02554     std::string sourceCode;
02555     std::string bannerComment;
02556     std::string rightComment;
02557     std::string trailingComment;
02558   public:
02561     ClassNode() {applyDefaults();}
02562     ClassNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02563     virtual ~ClassNode() {}
02565 
02568     virtual const char *getTagName() const {return "class";}
02569     virtual int getTagCode() const {return NED_CLASS;}
02570     virtual int getNumAttributes() const;
02571     virtual const char *getAttributeName(int k) const;
02572     virtual const char *getAttribute(int k) const;
02573     virtual void setAttribute(int k, const char *val);
02574     virtual const char *getAttributeDefault(int k) const;
02576 
02579     const char * getName() const  {return name.c_str();}
02580     void setName(const char * val)  {name = val;}
02581     const char * getExtendsName() const  {return extendsName.c_str();}
02582     void setExtendsName(const char * val)  {extendsName = val;}
02583     const char * getSourceCode() const  {return sourceCode.c_str();}
02584     void setSourceCode(const char * val)  {sourceCode = val;}
02585     const char * getBannerComment() const  {return bannerComment.c_str();}
02586     void setBannerComment(const char * val)  {bannerComment = val;}
02587     const char * getRightComment() const  {return rightComment.c_str();}
02588     void setRightComment(const char * val)  {rightComment = val;}
02589     const char * getTrailingComment() const  {return trailingComment.c_str();}
02590     void setTrailingComment(const char * val)  {trailingComment = val;}
02591 
02592     virtual ClassNode *getNextClassNodeSibling() const;
02593     virtual PropertiesNode *getFirstPropertiesChild() const;
02594     virtual FieldsNode *getFirstFieldsChild() const;
02596 };
02597 
02614 class StructNode : public NEDElement
02615 {
02616   private:
02617     std::string name;
02618     std::string extendsName;
02619     std::string sourceCode;
02620     std::string bannerComment;
02621     std::string rightComment;
02622     std::string trailingComment;
02623   public:
02626     StructNode() {applyDefaults();}
02627     StructNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02628     virtual ~StructNode() {}
02630 
02633     virtual const char *getTagName() const {return "struct";}
02634     virtual int getTagCode() const {return NED_STRUCT;}
02635     virtual int getNumAttributes() const;
02636     virtual const char *getAttributeName(int k) const;
02637     virtual const char *getAttribute(int k) const;
02638     virtual void setAttribute(int k, const char *val);
02639     virtual const char *getAttributeDefault(int k) const;
02641 
02644     const char * getName() const  {return name.c_str();}
02645     void setName(const char * val)  {name = val;}
02646     const char * getExtendsName() const  {return extendsName.c_str();}
02647     void setExtendsName(const char * val)  {extendsName = val;}
02648     const char * getSourceCode() const  {return sourceCode.c_str();}
02649     void setSourceCode(const char * val)  {sourceCode = val;}
02650     const char * getBannerComment() const  {return bannerComment.c_str();}
02651     void setBannerComment(const char * val)  {bannerComment = val;}
02652     const char * getRightComment() const  {return rightComment.c_str();}
02653     void setRightComment(const char * val)  {rightComment = val;}
02654     const char * getTrailingComment() const  {return trailingComment.c_str();}
02655     void setTrailingComment(const char * val)  {trailingComment = val;}
02656 
02657     virtual StructNode *getNextStructNodeSibling() const;
02658     virtual PropertiesNode *getFirstPropertiesChild() const;
02659     virtual FieldsNode *getFirstFieldsChild() const;
02661 };
02662 
02675 class FieldsNode : public NEDElement
02676 {
02677   private:
02678     std::string bannerComment;
02679     std::string rightComment;
02680   public:
02683     FieldsNode() {applyDefaults();}
02684     FieldsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02685     virtual ~FieldsNode() {}
02687 
02690     virtual const char *getTagName() const {return "fields";}
02691     virtual int getTagCode() const {return NED_FIELDS;}
02692     virtual int getNumAttributes() const;
02693     virtual const char *getAttributeName(int k) const;
02694     virtual const char *getAttribute(int k) const;
02695     virtual void setAttribute(int k, const char *val);
02696     virtual const char *getAttributeDefault(int k) const;
02698 
02701     const char * getBannerComment() const  {return bannerComment.c_str();}
02702     void setBannerComment(const char * val)  {bannerComment = val;}
02703     const char * getRightComment() const  {return rightComment.c_str();}
02704     void setRightComment(const char * val)  {rightComment = val;}
02705 
02706     virtual FieldsNode *getNextFieldsNodeSibling() const;
02707     virtual FieldNode *getFirstFieldChild() const;
02709 };
02710 
02730 class FieldNode : public NEDElement
02731 {
02732   private:
02733     std::string name;
02734     std::string dataType;
02735     bool isAbstract;
02736     bool isVector;
02737     std::string vectorSize;
02738     std::string enumName;
02739     std::string defaultValue;
02740     std::string bannerComment;
02741     std::string rightComment;
02742   public:
02745     FieldNode() {applyDefaults();}
02746     FieldNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02747     virtual ~FieldNode() {}
02749 
02752     virtual const char *getTagName() const {return "field";}
02753     virtual int getTagCode() const {return NED_FIELD;}
02754     virtual int getNumAttributes() const;
02755     virtual const char *getAttributeName(int k) const;
02756     virtual const char *getAttribute(int k) const;
02757     virtual void setAttribute(int k, const char *val);
02758     virtual const char *getAttributeDefault(int k) const;
02760 
02763     const char * getName() const  {return name.c_str();}
02764     void setName(const char * val)  {name = val;}
02765     const char * getDataType() const  {return dataType.c_str();}
02766     void setDataType(const char * val)  {dataType = val;}
02767     bool getIsAbstract() const  {return isAbstract;}
02768     void setIsAbstract(bool val)  {isAbstract = val;}
02769     bool getIsVector() const  {return isVector;}
02770     void setIsVector(bool val)  {isVector = val;}
02771     const char * getVectorSize() const  {return vectorSize.c_str();}
02772     void setVectorSize(const char * val)  {vectorSize = val;}
02773     const char * getEnumName() const  {return enumName.c_str();}
02774     void setEnumName(const char * val)  {enumName = val;}
02775     const char * getDefaultValue() const  {return defaultValue.c_str();}
02776     void setDefaultValue(const char * val)  {defaultValue = val;}
02777     const char * getBannerComment() const  {return bannerComment.c_str();}
02778     void setBannerComment(const char * val)  {bannerComment = val;}
02779     const char * getRightComment() const  {return rightComment.c_str();}
02780     void setRightComment(const char * val)  {rightComment = val;}
02781 
02782     virtual FieldNode *getNextFieldNodeSibling() const;
02784 };
02785 
02798 class PropertiesNode : public NEDElement
02799 {
02800   private:
02801     std::string bannerComment;
02802     std::string rightComment;
02803   public:
02806     PropertiesNode() {applyDefaults();}
02807     PropertiesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02808     virtual ~PropertiesNode() {}
02810 
02813     virtual const char *getTagName() const {return "properties";}
02814     virtual int getTagCode() const {return NED_PROPERTIES;}
02815     virtual int getNumAttributes() const;
02816     virtual const char *getAttributeName(int k) const;
02817     virtual const char *getAttribute(int k) const;
02818     virtual void setAttribute(int k, const char *val);
02819     virtual const char *getAttributeDefault(int k) const;
02821 
02824     const char * getBannerComment() const  {return bannerComment.c_str();}
02825     void setBannerComment(const char * val)  {bannerComment = val;}
02826     const char * getRightComment() const  {return rightComment.c_str();}
02827     void setRightComment(const char * val)  {rightComment = val;}
02828 
02829     virtual PropertiesNode *getNextPropertiesNodeSibling() const;
02830     virtual PropertyNode *getFirstPropertyChild() const;
02832 };
02833 
02848 class PropertyNode : public NEDElement
02849 {
02850   private:
02851     std::string name;
02852     std::string value;
02853     std::string bannerComment;
02854     std::string rightComment;
02855   public:
02858     PropertyNode() {applyDefaults();}
02859     PropertyNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02860     virtual ~PropertyNode() {}
02862 
02865     virtual const char *getTagName() const {return "property";}
02866     virtual int getTagCode() const {return NED_PROPERTY;}
02867     virtual int getNumAttributes() const;
02868     virtual const char *getAttributeName(int k) const;
02869     virtual const char *getAttribute(int k) const;
02870     virtual void setAttribute(int k, const char *val);
02871     virtual const char *getAttributeDefault(int k) const;
02873 
02876     const char * getName() const  {return name.c_str();}
02877     void setName(const char * val)  {name = val;}
02878     const char * getValue() const  {return value.c_str();}
02879     void setValue(const char * val)  {value = val;}
02880     const char * getBannerComment() const  {return bannerComment.c_str();}
02881     void setBannerComment(const char * val)  {bannerComment = val;}
02882     const char * getRightComment() const  {return rightComment.c_str();}
02883     void setRightComment(const char * val)  {rightComment = val;}
02884 
02885     virtual PropertyNode *getNextPropertyNodeSibling() const;
02887 };
02888 
02900 class UnknownNode : public NEDElement
02901 {
02902   private:
02903     std::string element;
02904   public:
02907     UnknownNode() {applyDefaults();}
02908     UnknownNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02909     virtual ~UnknownNode() {}
02911 
02914     virtual const char *getTagName() const {return "unknown";}
02915     virtual int getTagCode() const {return NED_UNKNOWN;}
02916     virtual int getNumAttributes() const;
02917     virtual const char *getAttributeName(int k) const;
02918     virtual const char *getAttribute(int k) const;
02919     virtual void setAttribute(int k, const char *val);
02920     virtual const char *getAttributeDefault(int k) const;
02922 
02925     const char * getElement() const  {return element.c_str();}
02926     void setElement(const char * val)  {element = val;}
02927 
02928     virtual UnknownNode *getNextUnknownNodeSibling() const;
02930 };
02931 
02937 class NEDElementFactory
02938 {
02939   protected:
02940     static NEDElementFactory *f;
02941   public:
02943     static NEDElementFactory *getInstance();
02945     virtual NEDElement *createNodeWithTag(const char *tagname);
02947     virtual NEDElement *createNodeWithTag(int tagcode);
02948 };
02949 
02950 #endif
02951 

Generated on Fri Apr 1 12:25:37 2005 for OMNeT++/OMNEST NEDXML by  doxygen 1.3.9.1