scaffold  1.0.0
Generates files and directories based on templates and user input
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
project.h
Go to the documentation of this file.
1 /* ========================================================================= */
2 /* ------------------------------------------------------------------------- *//*
12 
13 
14  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15  Please read COPYING and README files in root folder
16  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17 */
18 /* ------------------------------------------------------------------------- */
19 /* ========================================================================= */
20 #ifndef __PROJECT_INC__
21 #define __PROJECT_INC__
22 //
23 //
24 //
25 //
26 /* INCLUDES ------------------------------------------------------------ */
27 
28 #include <scaffold/scaffold.h>
29 #include <libbbb/list2d.h>
30 #include <libbbb/varmap.h>
31 #include <QString>
32 #include <QProcess>
33 #include <QVector>
34 
35 /* INCLUDES ============================================================ */
36 //
37 //
38 //
39 //
40 /* DEFINITIONS --------------------------------------------------------- */
41 
42 namespace scaffold {
43 
44 class Generator;
45 
46 /* DEFINITIONS ========================================================= */
47 //
48 //
49 //
50 //
51 /* CLASS --------------------------------------------------------------- */
52 
67 class Project : public List2De, public bbb::VarMap, public MemTrack {
68  BBM_TRACK( Project );
69 
70  //
71  //
72  //
73  //
74  /* DEFINITIONS ----------------------------------------------------- */
75 
76 public:
77 
79 # define VPRJ_NAME "NAME"
80 
81 # define VPRJ_UNIX_NAME "UNIXNAME"
82 
83 # define VPRJ_CLASS_NAME "CLASS"
84 
85 # define VPRJ_DESCR "DESCRIPTION"
86 
87 # define VPRJ_OUTPATH "OUTPATH"
88 
89 # define VPRJ_GENERATORS "GENERATORS"
90 
91  /* DEFINITIONS ===================================================== */
92  //
93  //
94  //
95  //
96  /* DATA ------------------------------------------------------------ */
97 
98 private:
99 
101  List2Dh gens_;
102 
104  Generator * generator_crt_;
105 
106  /* DATA ============================================================ */
107  //
108  //
109  //
110  //
111  /* FUNCTIONS ------------------------------------------------------- */
112 
113 public:
114 
116  Project (
117  const QString & s_name
118  );
119 
121  virtual ~Project ( void );
122 
124  bool generate ( void );
125 
126 
127  /* -------------------------------------------------------------------- */
131 
132 
134  QString name ( void ) const
135  { return valueS( VPRJ_NAME ); }
136 
138  QString unixName ( void ) const
139  { return valueS( VPRJ_UNIX_NAME ); }
140 
142  QString description ( void ) const
143  { return valueS( VPRJ_DESCR ); }
144 
146  QString outPath ( void ) const
147  { return valueS( VPRJ_OUTPATH ); }
148 
150  /* ==================================================================== */
151 
152 
153  /* -------------------------------------------------------------------- */
157 
158 
160  void addGenerator ( Generator * g );
161 
163  Generator * generator ( const QString & s_name );
164 
166  Generator * generator ( void )
167  { return generator_crt_; }
168 
170  void setGenerator ( Generator * g )
171  { generator_crt_ = g; }
172 
174  /* ==================================================================== */
175 
176 
177 
178  /* FUNCTIONS ======================================================= */
179  //
180  //
181  //
182  //
183 
184 }; /* class Project */
185 
186 /* CLASS =============================================================== */
187 //
188 //
189 //
190 //
191 
192 } // namespace scaffold
193 
194 #endif // __PROJECT_INC__
195 /* ------------------------------------------------------------------------- */
196 /* ========================================================================= */