Computer Assited Medical Intervention Tool Kit  version 3.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups 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 // Dependency from cepcoreschema
39 // Declaration here to avoid declaration in dependant projects.
40 namespace cepcoreschema {
41  class Cep;
42 }
43 
44 class ExtensionGenerator;
45 
53 class CepGenerator {
54  public :
56  static bool generateCEP(QString xmlFileName, QString devDirectoryName);
58  static bool generateCEP(std::auto_ptr<cepcoreschema::Cep> domCep, QString devDirectoryName);
59 
60 protected:
61  CepGenerator(QString xmlFilename, QString devDirectoryName);
62  CepGenerator(std::auto_ptr<cepcoreschema::Cep> domCep, QString devDirectoryName);
63 
64  ~CepGenerator();
65 
67  virtual void setXmlFileName(QString xmlFileName) throw (QString);
69  virtual void setDevDirectoryName(QString devDirectoryName) throw (QString);
90  virtual void generateDirectoryTree() throw(QString);
91 
93  virtual void serializeManifest();
96  virtual void generateGlobalCMakeLists();
98  virtual void generateCopyright();
100  virtual void generateReadme();
102  virtual void copyFindCamiTK();
104  virtual void generateActionsDirectory();
106  virtual void generateApplicationsDirectory();
108  virtual void generateComponentsDirectory();
110  virtual void generateLibrariesDirectory();
112  virtual void setLicence();
115  virtual void createActionExtensionDoms();
116  virtual void createComponentExtensionDoms();
117  virtual void createLibrarieDoms();
118 
119  virtual void generateExtensions();
120 
121 private:
122 
124  virtual void createDomTree() throw (QString);
125 
126 
127 
131  std::auto_ptr<cepcoreschema::Cep> domCep;
132 
134  QFileInfo xmlFileName;
135 
138 
141 
142 
144  QVector<ExtensionGenerator *> extensions;
145 
147 // QVector<ActionExtensionGenerator *> actionExtensions;
148 
150 // QVector<ComponentExtensionGenerator *> componentExtensions;
151 
152  QString licence;
153 
154 };
155 
156 #endif // CEPGENERATOR_H
virtual void generateComponentsDirectory()
virtual void generateActionsDirectory()
virtual void serializeManifest()
virtual void generateCopyright()
QString cepDirectoryName
Subdirectory where the CEP sources will be stored (updated when generating the directory tree) ...
Definition: CepGenerator.h:140
virtual void setXmlFileName(QString xmlFileName)
Set the input XML CEP manifest (ant check its xml validity)
static bool generateCEP(QString xmlFileName, QString devDirectoryName)
Supposes that the CEP does NOT exist.
QVector< ExtensionGenerator * > extensions
Action or Component Extensions.
Definition: CepGenerator.h:144
virtual void generateLibrariesDirectory()
QString licence
Action Extensions.
Definition: CepGenerator.h:152
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:131
QFileInfo xmlFileName
Where to find the original XML description of the CEP.
Definition: CepGenerator.h:134
QDir devDirectoryName
Where to store the produced files.
Definition: CepGenerator.h:137
virtual void createLibrarieDoms()
TODO Celine comment here please.
Definition: libraries/cepgenerator/ExtensionGenerator.h:49
CepGenerator(QString xmlFilename, QString devDirectoryName)
virtual void generateExtensions()
virtual void generateApplicationsDirectory()
virtual void copyFindCamiTK()
virtual void generateReadme()
virtual void generateGlobalCMakeLists()
virtual void createActionExtensionDoms()
virtual void setDevDirectoryName(QString devDirectoryName)
Where to generate the CEP directories and files.
virtual void setLicence()
virtual void createDomTree()
Create the DOM attribute domCep from the XML CEP manifest.
virtual void createComponentExtensionDoms()
virtual void generateDirectoryTree()
Create the general directory tree (the same for every CEP) Copies the default files in the right dire...
TODO Celine comment here please.
Definition: CepGenerator.h:53