52
54
#include "cppcodegenerator.h"
55
#include "dcodegenerator.h"
53
56
#include "javacodegenerator.h"
54
57
#include "rubycodegenerator.h"
56
59
#include "cppheadercodedocument.h"
57
60
#include "cppsourcecodedocument.h"
61
#include "dclassifiercodedocument.h"
58
62
#include "javaclassifiercodedocument.h"
59
63
#include "rubyclassifiercodedocument.h"
60
64
#include "javaantcodedocument.h"
62
66
#include "cppheadercodeoperation.h"
63
67
#include "cppsourcecodeoperation.h"
68
#include "dcodeoperation.h"
64
69
#include "javacodeoperation.h"
65
70
#include "rubycodeoperation.h"
67
72
#include "cppcodeclassfield.h"
73
#include "dcodeclassfield.h"
68
74
#include "javacodeclassfield.h"
69
75
#include "rubycodeclassfield.h"
71
77
#include "cppheadercodeaccessormethod.h"
72
78
#include "cppsourcecodeaccessormethod.h"
79
#include "dcodeaccessormethod.h"
73
80
#include "javacodeaccessormethod.h"
74
81
#include "rubycodeaccessormethod.h"
76
83
#include "cppheadercodeclassfielddeclarationblock.h"
77
84
#include "cppsourcecodeclassfielddeclarationblock.h"
85
#include "dcodeclassfielddeclarationblock.h"
78
86
#include "javacodeclassfielddeclarationblock.h"
79
87
#include "rubycodeclassfielddeclarationblock.h"
81
89
#include "cppcodedocumentation.h"
90
#include "dcodecomment.h"
82
91
#include "javacodecomment.h"
83
92
#include "rubycodecomment.h"
84
93
#include "xmlcodecomment.h"
86
95
#include "cppcodegenerationpolicy.h"
96
#include "dcodegenerationpolicy.h"
87
97
#include "javacodegenerationpolicy.h"
88
98
#include "rubycodegenerationpolicy.h"
108
117
obj = new CppWriter();
111
CPPCodeGenerationPolicy *p =
112
new CPPCodeGenerationPolicy(UMLApp::app()->getConfig());
113
UMLApp::app()->setPolicyExt(p);
116
120
case Uml::pl_CSharp:
117
121
obj = new CSharpWriter();
124
if (optionState.generalState.newcodegen) {
125
obj = new DCodeGenerator();
126
obj->connect_newcodegen_slots();
122
131
case Uml::pl_IDL:
123
132
obj = new IDLWriter();
126
135
if (optionState.generalState.newcodegen) {
127
136
obj = new JavaCodeGenerator();
128
137
obj->connect_newcodegen_slots();
129
JavaCodeGenerationPolicy *p =
130
new JavaCodeGenerationPolicy(UMLApp::app()->getConfig());
131
UMLApp::app()->setPolicyExt(p);
133
139
obj = new JavaWriter();
135
142
case Uml::pl_JavaScript:
136
143
obj = new JSWriter();
146
obj = new MySQLWriter();
138
148
case Uml::pl_PHP:
139
149
obj = new PhpWriter();
154
167
if (optionState.generalState.newcodegen) {
155
168
obj = new RubyCodeGenerator();
156
169
obj->connect_newcodegen_slots();
157
RubyCodeGenerationPolicy *p =
158
new RubyCodeGenerationPolicy(UMLApp::app()->getConfig());
159
UMLApp::app()->setPolicyExt(p);
161
171
obj = new RubyWriter();
163
173
case Uml::pl_SQL:
170
180
obj = new XMLSchemaWriter();
173
kWarning() << "cannot create object of type " << pl
183
uWarning() << "cannot create object of type " << pl
174
184
<< ". Type unknown" << endl;
188
UMLApp::app()->setPolicyExt(CodeGenFactory::newCodeGenPolicyExt(pl));
178
190
obj->initFromParentDocument();
209
224
case Uml::pl_Cpp:
211
226
CPPHeaderCodeDocument *hcd = dynamic_cast<CPPHeaderCodeDocument*>(ccd);
213
return new CPPHeaderCodeOperation(hcd, op);
228
CPPHeaderCodeOperation *cpphcd = new CPPHeaderCodeOperation(hcd, op);
229
cpphcd->updateMethodDeclaration();
230
cpphcd->updateContent();
214
233
CPPSourceCodeDocument *scd = dynamic_cast<CPPSourceCodeDocument*>(ccd);
216
return new CPPSourceCodeOperation(scd, op);
235
CPPSourceCodeOperation *cppscd = new CPPSourceCodeOperation(scd, op);
236
cppscd->updateMethodDeclaration();
237
cppscd->updateContent();
243
retval = new DCodeOperation(dynamic_cast<DClassifierCodeDocument*>(ccd), op);
244
retval->updateMethodDeclaration();
245
retval->updateContent();
219
247
case Uml::pl_Java:
220
248
retval = new JavaCodeOperation(dynamic_cast<JavaClassifierCodeDocument*>(ccd), op);
249
retval->updateMethodDeclaration();
250
retval->updateContent();
222
252
case Uml::pl_Ruby:
223
253
retval = new RubyCodeOperation(dynamic_cast<RubyClassifierCodeDocument*>(ccd), op);
254
retval->updateMethodDeclaration();
255
retval->updateContent();
235
267
case Uml::pl_Cpp:
236
268
retval = new CPPCodeClassField(ccd, at);
271
retval = new DCodeClassField(ccd, at);
238
273
case Uml::pl_Java:
239
274
retval = new JavaCodeClassField(ccd, at);
254
289
case Uml::pl_Cpp:
255
290
retval = new CPPCodeClassField(ccd, role);
293
retval = new DCodeClassField(ccd, role);
257
295
case Uml::pl_Java:
258
296
retval = new JavaCodeClassField(ccd, role);
314
361
case Uml::pl_Cpp:
316
363
CPPHeaderCodeDocument *hcd = dynamic_cast<CPPHeaderCodeDocument*>(cd);
318
return new CPPHeaderCodeClassFieldDeclarationBlock(cf);
365
CPPHeaderCodeClassFieldDeclarationBlock * cpphcd = new CPPHeaderCodeClassFieldDeclarationBlock(cf);
366
cpphcd->updateContent();
319
369
CPPSourceCodeDocument *scd = dynamic_cast<CPPSourceCodeDocument*>(cd);
321
return new CPPSourceCodeClassFieldDeclarationBlock(cf);
371
CPPSourceCodeClassFieldDeclarationBlock *cppscd = new CPPSourceCodeClassFieldDeclarationBlock(cf);
372
cppscd->updateContent();
378
retval = new DCodeClassFieldDeclarationBlock(cf);
379
retval->updateContent();
324
381
case Uml::pl_Java:
325
382
retval = new JavaCodeClassFieldDeclarationBlock(cf);
383
retval->updateContent();
327
385
case Uml::pl_Ruby:
328
386
retval = new RubyCodeClassFieldDeclarationBlock(cf);
387
retval->updateContent();
340
399
dynamic_cast<CPPSourceCodeDocument*>(cd))
341
400
return new CPPCodeDocumentation(cd);
403
if (dynamic_cast<DClassifierCodeDocument*>(cd))
404
return new DCodeComment(cd);
343
406
case Uml::pl_Java:
344
407
if (dynamic_cast<JavaClassifierCodeDocument*>(cd))
345
408
return new JavaCodeComment(cd);
356
419
return new CodeComment(cd);
422
CodeGenPolicyExt* newCodeGenPolicyExt(Uml::Programming_Language pl) {
424
Settings::OptionState optionState = Settings::getOptionState();
426
if ( pl == Uml::pl_Cpp )
427
return new CPPCodeGenerationPolicy();
429
if ( optionState.generalState.newcodegen ) {
432
return new JavaCodeGenerationPolicy();
435
return new DCodeGenerationPolicy();
438
return new RubyCodeGenerationPolicy();
359
450
} // end namespace CodeGenFactory