PhoenixGenerator
2.8.0
Set of tools to generate code
Toggle main menu visibility
Loading...
Searching...
No Matches
CppTraitSetter.cpp
Go to the documentation of this file.
1
2
/***************************************
3
Auteur : Pierre Aubert
4
Mail : pierre.aubert@lapp.in2p3.fr
5
Licence : CeCILL-C
6
****************************************/
7
8
#include "
CppTraitSetter.h
"
9
11
17
PString
setter_createSetterDecl
(
const
PString & varType,
const
PString & varName,
const
PString & className,
bool
isPtr){
18
PString functionDecl(
"void "
);
19
if
(className !=
""
) functionDecl += className +
"::"
;
20
functionDecl +=
"set"
+ varName.firstToUpper() +
"("
;
21
functionDecl +=
makeVarType
(varType,
true
,
true
,
false
, isPtr);
22
functionDecl +=
" "
+ varName +
")"
;
23
return
functionDecl;
24
}
25
26
28
CppTraitSetter::CppTraitSetter
()
29
:
PAbstractTraitBackend
()
30
{}
31
33
CppTraitSetter::~CppTraitSetter
(){}
34
36
40
void
CppTraitSetter::publicMethodDeclaration
(std::ofstream & fs,
const
PClassConfig
& classConfig,
const
GeneratorMode
& mode)
const
{
41
if
(!mode.
enableSetter
|| classConfig.
getIsEnum
()){
return
;}
42
const
PVecClassAttribute
& vecAttr(classConfig.
getListAttribute
());
43
for
(PVecClassAttribute::const_iterator it(vecAttr.begin()); it != vecAttr.end(); ++it){
44
fs <<
"\t\t"
<<
setter_createSetterDecl
(it->getType(), it->getName(),
""
, it->getIsPointer()) <<
";"
<< std::endl;
45
}
46
}
47
49
53
void
CppTraitSetter::publicMethodImplementation
(std::ofstream & fs,
const
PClassConfig
& classConfig,
const
GeneratorMode
& mode)
const
{
54
if
(!mode.
enableSetter
|| classConfig.
getIsEnum
()){
return
;}
55
56
const
PVecClassAttribute
& listAttr(classConfig.
getListAttribute
());
57
for
(PVecClassAttribute::const_iterator it(listAttr.begin()); it != listAttr.end(); ++it){
58
fs <<
"///Sets the "
<< it->getName() <<
" of the "
<< classConfig.
getName
() << std::endl;
59
fs <<
"/**\t@param "
<< it->getName() <<
" : "
<< it->getName() <<
" of the "
<< classConfig.
getName
() << std::endl;
60
fs <<
"*/"
<< std::endl;
61
fs << mode.
templateDeclaration
;
62
fs <<
setter_createSetterDecl
(it->getType(), it->getName(), classConfig.
getName
() + mode.
defTemplate
, it->getIsPointer()) <<
"{"
<< std::endl;
63
fs <<
"\tp_"
<< it->getName() <<
" = "
<< it->getName() <<
";"
<< std::endl;
64
fs <<
"}"
<< std::endl << std::endl;
65
}
66
}
67
68
69
70
setter_createSetterDecl
PString setter_createSetterDecl(const PString &varType, const PString &varName, const PString &className, bool isPtr)
Creates a function decl for setters.
Definition
CppTraitSetter.cpp:17
CppTraitSetter.h
PVecClassAttribute
std::vector< PClassAttribute > PVecClassAttribute
Definition
PDataConfig.h:13
CppTraitSetter::~CppTraitSetter
virtual ~CppTraitSetter()
Desctructor of CppTraitSetter.
Definition
CppTraitSetter.cpp:33
CppTraitSetter::publicMethodDeclaration
virtual void publicMethodDeclaration(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Declaration of methods.
Definition
CppTraitSetter.cpp:40
CppTraitSetter::CppTraitSetter
CppTraitSetter()
Consctructor of CppTraitSetter.
Definition
CppTraitSetter.cpp:28
CppTraitSetter::publicMethodImplementation
virtual void publicMethodImplementation(std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
Implementation of methods.
Definition
CppTraitSetter.cpp:53
PAbstractTraitBackend::PAbstractTraitBackend
PAbstractTraitBackend()
Definition
PAbstractTraitBackend.h:22
PClassConfig
Class to describe a basic class.
Definition
PClassConfig.h:14
PClassConfig::getListAttribute
const std::vector< PClassAttribute > & getListAttribute() const
Returns the list of attributes of the class.
Definition
PClassConfig.cpp:167
PClassConfig::getName
const PString & getName() const
Returns the class name.
Definition
PClassConfig.cpp:129
PClassConfig::getIsEnum
bool getIsEnum() const
Say if the current PClassConfig is an enum.
Definition
PClassConfig.cpp:197
GeneratorMode
All the genertor modes.
Definition
GeneratorMode.h:27
GeneratorMode::defTemplate
PString defTemplate
Template definition for the class header.
Definition
GeneratorMode.h:48
GeneratorMode::templateDeclaration
PString templateDeclaration
Template declaration of the method implementation.
Definition
GeneratorMode.h:50
GeneratorMode::enableSetter
bool enableSetter
True to enable setters trait generator.
Definition
GeneratorMode.h:40
makeVarType
PString makeVarType(const PString &varType, bool isSetter, bool isConst, bool isRef, bool isPtr)
Makes the var type by taking account of the type.
Definition
type_utils.cpp:153
src
TraitBackEnd
CPP
CppTraitSetter
CppTraitSetter.cpp
Generated by
1.17.0