scaffold
1.0.0
Generates files and directories based on templates and user input
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
generator.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 __GENERATOR_INC__
21
#define __GENERATOR_INC__
22
//
23
//
24
//
25
//
26
/* INCLUDES ------------------------------------------------------------ */
27
28
#include <
scaffold/scaffold.h
>
29
30
/* INCLUDES ============================================================ */
31
//
32
//
33
//
34
//
35
/* DEFINITIONS --------------------------------------------------------- */
36
37
namespace
scaffold {
38
39
/* DEFINITIONS ========================================================= */
40
//
41
//
42
//
43
//
44
/* CLASS --------------------------------------------------------------- */
45
59
class
Generator
:
public
List2De,
public
bbb::VarMap,
public
MemTrack {
60
BBM_TRACK(
Generator
);
61
62
//
63
//
64
//
65
//
66
/* DEFINITIONS ----------------------------------------------------- */
67
68
public
:
69
71
# define VGEN_TEMPLATES "TEMPLATES"
72
73
# define VGEN_NAME "NAME"
74
75
# define VGEN_OUTPATH "OUTPATH"
76
77
79
typedef
Generator
* (*generatorFactory) (
Project
* p,
const
QString & s_name );
80
82
enum
ExistingPolicy
{
83
OVERWRITE,
84
KEEP,
85
BLEND
86
};
87
88
89
/* DEFINITIONS ===================================================== */
90
//
91
//
92
//
93
//
94
/* DATA ------------------------------------------------------------ */
95
96
private
:
97
99
Project
* parent_;
100
102
QString name_;
103
105
ExistingPolicy
existp_;
106
108
static
QMap<QString,generatorFactory> factories_;
109
110
111
/* DATA ============================================================ */
112
//
113
//
114
//
115
//
116
/* FUNCTIONS ------------------------------------------------------- */
117
118
public
:
119
121
Generator
(
Project
* p,
const
QString & s_name );
122
124
virtual
~Generator
(
void
);
125
127
inline
Project
*
parent
(
void
)
const
128
{
return
parent_; }
129
131
const
QString &
name
(
void
)
const
132
{
return
name_; }
133
135
QString
outputPath
(
void
)
const
136
{
return
valueS(
VGEN_OUTPATH
); }
137
139
ExistingPolicy
overwriteMode
(
void
)
const
140
{
return
existp_; }
141
143
void
setOverwriteMode
(
ExistingPolicy
new_p )
144
{ existp_ = new_p; }
145
146
147
/* -------------------------------------------------------------------- */
151
152
154
166
virtual
bool
addTemplate
(
167
const
QString & s_path
168
) = 0;
169
171
virtual
bool
generate
(
void
) = 0;
172
174
/* ==================================================================== */
175
176
177
/* -------------------------------------------------------------------- */
181
182
184
static
void
addGeneratorFactory
(
185
const
QString & s_gen_name,
186
generatorFactory
factory
187
);
188
190
static
void
remGeneratorFactory
(
191
const
QString & s_gen_name
192
);
193
195
static
generatorFactory
factory
(
196
const
QString & s_name
197
);
198
200
/* ==================================================================== */
201
202
203
204
205
/* FUNCTIONS ======================================================= */
206
//
207
//
208
//
209
//
210
211
};
/* class Generator */
212
213
/* CLASS =============================================================== */
214
//
215
//
216
//
217
//
218
219
}
// namespace scaffold
220
221
#endif // __GENERATOR_INC__
222
/* ------------------------------------------------------------------------- */
223
/* ========================================================================= */
src3
scaffold
logic
generator.h
Generated on Thu Aug 8 2013 20:06:55 for scaffold by
1.8.3.1