00001 #ifndef CODEGEN_H
00002 #define CODEGEN_H
00003
00004 #include "FCO.h"
00005 #include "FolderRep.h"
00006 #include "ModelRep.h"
00007 #include "SetRep.h"
00008 #include "ReferenceRep.h"
00009 #include "ConnectionRep.h"
00010 #include "Method.h"
00011
00012
00013
00014 class CodeGen
00015 {
00016
00017 public:
00018 static std::string fill( int i = 1);
00019 static std::string indent( int i = 0);
00020
00021
00026 static std::string folderKidsTemplate();
00027 static std::string modelKidsTemplate();
00028 static Method acceptMethod( Any * any, bool pWithTraversalOfKids, bool pSpecialized, bool pRetValBool);
00029
00030
00031
00035 static void folderGetter( const std::string& retval_folderkind, const std::string& sub_name, const std::string& method_name, bool extended, Any * cont, Method& m);
00036 static void folderGetterGeneric( const std::string& retval_folderkind, const std::string& sub_name, const std::string& method_name, bool extended, Any * cont, Method& m);
00037
00038 static void dumpFoldGetter( FolderRep* sub, FolderRep *fold);
00039
00040 static void kindGetter1( const std::string& retval_kind, const std::string& kind, const std::string& method_name, Any * cont, Method& m);
00041 static void kindGetter2( const std::string& retval_kind, const std::string& kind, const std::vector< std::string>& kind_vec, const std::string& method_name, Any * cont, Method& m);
00042 static void kindGetter3( const std::string& retval_kind, const std::string& kind, const std::string& method_name, Any * cont, Method& m);
00043
00044 static void kindGetter1Generic( const std::string& retval_kind, const std::string& kind, const std::string& method_name, Any * cont, Method& m);
00045 static void kindGetter2Generic( const std::string& retval_kind, const std::string& kind, const std::vector< std::string>& kind_vec, const std::string& method_name, Any * cont, Method& m);
00046 static void kindGetter3Generic( const std::string& retval_kind, const std::string& kind, const std::string& method_name, Any * cont, Method& m);
00047
00048 static void dumpKindGetter( FCO* fco, FolderRep * cont);
00049
00050
00054 static void roleGetter1( const std::string& retval_kind, const std::string& inquire, const std::string& method_name, const std::string& fco_name, Any * cont, Method& m);
00055 static void roleGetter1Generic( const std::string& retval_kind, const std::string& inquire, const std::string& method_name, const std::string& fco_name, Any * cont, Method& m);
00056
00057 static void roleGetter2( const std::string& retval_kind, const std::string& inquire, const std::string& method_name, const std::string& fco_name, Any * cont, Method& m);
00058 static void roleGetter2Generic( const std::string& retval_kind, const std::string& inquire, const std::string& method_name, const std::string& fco_name, Any * cont, Method& m);
00059
00060 static void roleGetter3( const std::string& retval_kind, const std::string& method_name, const std::string& fco_name, const std::string& role_name, const std::vector< std::string > & roles, const std::string& dummy_str, Any * cont, Method& m);
00061 static void roleGetter3Generic( const std::string& retval_kind, const std::string& method_name, const std::string& fco_name, const std::string& role_name, const std::vector< std::string > & roles, const std::string& dummy_str, Any * cont, Method& m);
00062
00063 static void roleGetter4( const std::string& retval_kind, const std::string& method_name, const std::string& fco_name, const std::string& desc_k_name, const std::string& role_name, const std::string& nmsp, Any * cont, Method& m);
00064 static void roleGetter4Generic( const std::string& retval_kind, const std::string& method_name, const std::string& fco_name, const std::string& desc_k_name, const std::string& role_name, const std::string& nmsp, Any * cont, Method& m);
00065
00066 static void dumpRoleGetter( FCO* fco, RoleRep * role, ModelRep *);
00067
00072 static Method dumpSetGetter( SetRep * cont, const FCO * fco, const std::string& comm_kind, bool aggreg = false, bool dummy_par = false);
00073 static Method dumpSetGetterGeneric( SetRep * cont, const FCO * fco, const std::string& comm_kind, bool aggreg = false, bool dummy_par = false);
00074
00078 static Method dumpRefGetter( ReferenceRep * cont, FCO * fco, const std::string& comm_kind);
00079
00080
00081
00086
00087 static Method dumpGetInConnectionLinks( FCO *fco, ConnectionRep * conn);
00088 static Method dumpGetOutConnectionLinks( FCO *fco, ConnectionRep * conn);
00089 static Method dumpGetBothConnectionLinks( FCO *fco, ConnectionRep * conn);
00090
00091 static Method dumpGetInConnectionLinksGeneric( FCO *fco, ConnectionRep * conn);
00092 static Method dumpGetOutConnectionLinksGeneric( FCO *fco, ConnectionRep * conn);
00093 static Method dumpGetBothConnectionLinksGeneric( FCO *fco, ConnectionRep * conn);
00094
00095
00096 static Method dumpGetInConnectionEnd( FCO *fco, FCO* peer, ConnectionRep * conn, bool refport);
00097 static Method dumpGetOutConnectionEnd( FCO *fco, FCO* peer, ConnectionRep * conn, bool refport);
00098 static Method dumpGetBothConnectionEnd( FCO *fco, FCO* peer, ConnectionRep * conn, bool refport);
00099
00100 static Method dumpGetInConnectionEndGeneric( FCO *fco, FCO* peer, ConnectionRep * conn, bool refport);
00101 static Method dumpGetOutConnectionEndGeneric( FCO *fco, FCO* peer, ConnectionRep * conn, bool refport);
00102 static Method dumpGetBothConnectionEndGeneric( FCO *fco, FCO* peer, ConnectionRep * conn, bool refport);
00103
00104
00105 static Method dumpGetSrc(FCO *fco, ConnectionRep * conn, bool refport);
00106 static Method dumpGetDst(FCO *fco, ConnectionRep * conn, bool refport);
00107 };
00108
00109 #endif // CODEGEN_H