Computer Assited Medical Intervention Tool Kit  version 3.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
CepGenerator.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * $CAMITK_LICENCE_BEGIN$
3  *
4  * CamiTK - Computer Assisted Medical Intervention ToolKit
5  * (c) 2001-2014 UJF-Grenoble 1, CNRS, TIMC-IMAG UMR 5525 (GMCAO)
6  *
7  * Visit http://camitk.imag.fr for more information
8  *
9  * This file is part of CamiTK.
10  *
11  * CamiTK is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * CamiTK is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License version 3 for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * version 3 along with CamiTK. If not, see <http://www.gnu.org/licenses/>.
22  *
23  * $CAMITK_LICENCE_END$
24  ****************************************************************************/
25 
26 #ifndef CEPGENERATOR_H
27 #define CEPGENERATOR_H
28 
29 // includes from STL (for Linux) for std::auto_ptr
30 #include <memory>
31 
32 // includes from Qt
33 #include <QDir>
34 #include <QString>
35 #include <QFileInfo>
36 #include <QVector>
37 
38 // Hide warning for Exception + declspec(nothrow)
39 #if defined(_WIN32) && !defined(__MINGW32__) // MSVC only
40 #pragma warning( disable : 4290 )
41 #endif // MSVC only
42 
43 // Dependency from cepcoreschema
44 // Declaration here to avoid declaration in dependant projects.
45 namespace cepcoreschema {
46 class Cep;
47 }
48 
49 class ExtensionGenerator;
50 
58 class CepGenerator {
59 public :
61  static bool generateCEP(QString xmlFileName, QString devDirectoryName);
63  static bool generateCEP(std::auto_ptr<cepcoreschema::Cep> domCep, QString devDirectoryName);
64 
65 protected:
66  CepGenerator(QString xmlFilename, QString devDirectoryName);
67  CepGenerator(std::auto_ptr<cepcoreschema::Cep> domCep, QString devDirectoryName);
68 
69  ~CepGenerator();
70 
72  virtual void setXmlFileName(QString xmlFileName) throw (QString);
74  virtual void setDevDirectoryName(QString devDirectoryName) throw (QString);
95  virtual void generateDirectoryTree() throw(QString);
96 
98  virtual void serializeManifest();
101  virtual void generateGlobalCMakeLists();
103  virtual void generateCopyright();
105  virtual void generateReadme();
107  virtual void copyFindCamiTK();
109  virtual void generateActionsDirectory();
111  virtual void generateApplicationsDirectory();
113  virtual void generateComponentsDirectory();
115  virtual void generateLibrariesDirectory();
117  virtual void setLicence();
120  virtual void createActionExtensionDoms();
121  virtual void createComponentExtensionDoms();
122  virtual void createLibrarieDoms();
123 
124  virtual void generateExtensions();
125 
126 private:
127 
129  virtual void createDomTree() throw (QString);
130 
131 
132 
136  std::auto_ptr<cepcoreschema::Cep> domCep;
137 
139  QFileInfo xmlFileName;
140 
143 
146 
147 
149  QVector<ExtensionGenerator *> extensions;
150 
152 // QVector<ActionExtensionGenerator *> actionExtensions;
153 
155 // QVector<ComponentExtensionGenerator *> componentExtensions;
156 
157  QString licence;
158 
159 };
160 
161 #endif // CEPGENERATOR_H
virtual void copyFindCamiTK()
Definition: CepGenerator.cpp:357
static bool generateCEP(QString xmlFileName, QString devDirectoryName)
Supposes that the CEP does NOT exist.
Definition: CepGenerator.cpp:56
virtual void createComponentExtensionDoms()
Definition: CepGenerator.cpp:437
QString cepDirectoryName
Subdirectory where the CEP sources will be stored (updated when generating the directory tree) ...
Definition: CepGenerator.h:145
~CepGenerator()
Definition: CepGenerator.cpp:110
virtual void setLicence()
Definition: CepGenerator.cpp:273
virtual void generateCopyright()
Definition: CepGenerator.cpp:294
QVector< ExtensionGenerator * > extensions
Action or Component Extensions.
Definition: CepGenerator.h:149
virtual void generateApplicationsDirectory()
Definition: CepGenerator.cpp:379
virtual void generateLibrariesDirectory()
Definition: CepGenerator.cpp:403
virtual void setXmlFileName(QString xmlFileName)
Set the input XML CEP manifest (ant check its xml validity)
Definition: CepGenerator.cpp:117
QString licence
Action Extensions.
Definition: CepGenerator.h:157
virtual void createLibrarieDoms()
Definition: CepGenerator.cpp:457
virtual void generateDirectoryTree()
Create the general directory tree (the same for every CEP) Copies the default files in the right dire...
Definition: CepGenerator.cpp:154
std::auto_ptr< cepcoreschema::Cep > domCep
XML DOM Element create by CodeSynthesis This cep instance contains all of the informations of the xml...
Definition: CepGenerator.h:136
QFileInfo xmlFileName
Where to find the original XML description of the CEP.
Definition: CepGenerator.h:139
QDir devDirectoryName
Where to store the produced files.
Definition: CepGenerator.h:142
Definition: ActionExtensionGenerator.h:36
TODO Celine comment here please.
Definition: ExtensionGenerator.h:49
CepGenerator(QString xmlFilename, QString devDirectoryName)
Definition: CepGenerator.cpp:98
virtual void generateComponentsDirectory()
Definition: CepGenerator.cpp:391
virtual void generateReadme()
Definition: CepGenerator.cpp:321
virtual void serializeManifest()
Definition: CepGenerator.cpp:193
virtual void createActionExtensionDoms()
Definition: CepGenerator.cpp:417
virtual void createDomTree()
Create the DOM attribute domCep from the XML CEP manifest.
Definition: CepGenerator.cpp:140
virtual void generateActionsDirectory()
Definition: CepGenerator.cpp:367
virtual void generateGlobalCMakeLists()
Definition: CepGenerator.cpp:225
virtual void generateExtensions()
Definition: CepGenerator.cpp:477
TODO Celine comment here please.
Definition: CepGenerator.h:58
virtual void setDevDirectoryName(QString devDirectoryName)
Where to generate the CEP directories and files.
Definition: CepGenerator.cpp:128