PhoenixGenerator  3.4.0
Generate code from template files and projects in C++, Rust, Python and wrapped C++ to Python
Loading...
Searching...
No Matches
CppTraitSetter Class Reference

Class generator for setter trait. More...

#include <CppTraitSetter.h>

Inheritance diagram for CppTraitSetter:
Collaboration diagram for CppTraitSetter:

Public Member Functions

virtual void classExtraFunctionDeclaration (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
virtual void classExtraFunctionImplementation (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
 CppTraitSetter ()
 Consctructor of CppTraitSetter.
virtual void headerExtraInclude (std::ofstream &fs, const GeneratorMode &mode) const
virtual void privateMethodDeclaration (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
virtual void privateMethodImplementation (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
virtual void protectedMethodDeclaration (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
virtual void protectedMethodImplementation (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
virtual void publicMethodDeclaration (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
 Declaration of methods.
virtual void publicMethodImplementation (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
 Implementation of methods.
virtual void testCallFunction (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
virtual void testFunction (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
virtual ~CppTraitSetter ()
 Desctructor of CppTraitSetter.

Detailed Description

Class generator for setter trait.

Definition at line 16 of file CppTraitSetter.h.

Constructor & Destructor Documentation

◆ CppTraitSetter()

CppTraitSetter::CppTraitSetter ( )

Consctructor of CppTraitSetter.

Definition at line 29 of file CppTraitSetter.cpp.

References PAbstractTraitBackend::PAbstractTraitBackend().

Here is the call graph for this function:

◆ ~CppTraitSetter()

CppTraitSetter::~CppTraitSetter ( )
virtual

Desctructor of CppTraitSetter.

Definition at line 34 of file CppTraitSetter.cpp.

34{}

Member Function Documentation

◆ classExtraFunctionDeclaration()

virtual void PAbstractTraitBackend::classExtraFunctionDeclaration ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
inlinevirtualinherited

◆ classExtraFunctionImplementation()

virtual void PAbstractTraitBackend::classExtraFunctionImplementation ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
inlinevirtualinherited

◆ headerExtraInclude()

virtual void PAbstractTraitBackend::headerExtraInclude ( std::ofstream & fs,
const GeneratorMode & mode ) const
inlinevirtualinherited

◆ privateMethodDeclaration()

virtual void PAbstractTraitBackend::privateMethodDeclaration ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
inlinevirtualinherited

◆ privateMethodImplementation()

virtual void PAbstractTraitBackend::privateMethodImplementation ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
inlinevirtualinherited

◆ protectedMethodDeclaration()

virtual void PAbstractTraitBackend::protectedMethodDeclaration ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
inlinevirtualinherited

◆ protectedMethodImplementation()

virtual void PAbstractTraitBackend::protectedMethodImplementation ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
inlinevirtualinherited

◆ publicMethodDeclaration()

void CppTraitSetter::publicMethodDeclaration ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
virtual

Declaration of methods.

Parameters
[out]fs: file to be completed
classConfig: PClassConfig to be used
mode: mode of the generator

Reimplemented from PAbstractTraitBackend.

Definition at line 41 of file CppTraitSetter.cpp.

41 {
42 if(!mode.enableSetter || classConfig.getIsEnum()){return;}
43 const PVecClassAttribute & vecAttr(classConfig.getListAttribute());
44 for(PVecClassAttribute::const_iterator it(vecAttr.begin()); it != vecAttr.end(); ++it){
45 fs << "\t\t" << setter_createSetterDecl(it->getType(), it->getName(), "", getIsPointerType(it->getType())) << ";" << std::endl;
46 }
47}
PString setter_createSetterDecl(const PString &varType, const PString &varName, const PString &className, bool isPtr)
Creates a function decl for setters.
std::vector< PClassAttribute > PVecClassAttribute
Definition PDataConfig.h:13
const std::vector< PClassAttribute > & getListAttribute() const
Returns the list of attributes of the class.
bool getIsEnum() const
Say if the current PClassConfig is an enum.
bool enableSetter
True to enable setters trait generator.
bool getIsPointerType(const PString &varType)
Say if a given type is a pointer type (i.e. it ends with a '*').

References GeneratorMode::enableSetter, PClassConfig::getIsEnum(), getIsPointerType(), PClassConfig::getListAttribute(), and setter_createSetterDecl().

Here is the call graph for this function:

◆ publicMethodImplementation()

void CppTraitSetter::publicMethodImplementation ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
virtual

Implementation of methods.

Parameters
[out]fs: file to be completed
classConfig: PClassConfig to be used
mode: mode of the generator

Reimplemented from PAbstractTraitBackend.

Definition at line 54 of file CppTraitSetter.cpp.

54 {
55 if(!mode.enableSetter || classConfig.getIsEnum()){return;}
56
57 const PVecClassAttribute & listAttr(classConfig.getListAttribute());
58 for(PVecClassAttribute::const_iterator it(listAttr.begin()); it != listAttr.end(); ++it){
59 fs << "///Sets the " << it->getName() << " of the " << classConfig.getName() << std::endl;
60 fs << "/**\t@param " << it->getName() << " : " << it->getName() << " of the " << classConfig.getName() << std::endl;
61 fs << "*/" << std::endl;
62 fs << mode.templateDeclaration;
63 bool isPtr(getIsPointerType(it->getType()));
64 fs << setter_createSetterDecl(it->getType(), it->getName(), classConfig.getName() + mode.defTemplate, isPtr) << "{" << std::endl;
65 if(isPtr){
66 fs << "\tif(p_" << it->getName() << " != " << it->getName() << "){delete p_" << it->getName() << ";}" << std::endl;
67 fs << "\tp_" << it->getName() << " = " << it->getName() << ";" << std::endl;
68 }else{
69 fs << "\tp_" << it->getName() << " = " << it->getName() << ";" << std::endl;
70 }
71 fs << "}" << std::endl << std::endl;
72 }
73}
const PString & getName() const
Returns the class name.
PString defTemplate
Template definition for the class header.
PString templateDeclaration
Template declaration of the method implementation.

References GeneratorMode::defTemplate, GeneratorMode::enableSetter, PClassConfig::getIsEnum(), getIsPointerType(), PClassConfig::getListAttribute(), PClassConfig::getName(), setter_createSetterDecl(), and GeneratorMode::templateDeclaration.

Here is the call graph for this function:

◆ testCallFunction()

virtual void PAbstractTraitBackend::testCallFunction ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
inlinevirtualinherited

Reimplemented in CppTraitCopy, CppTraitEmpty, CppTraitFromString, and CppTraitTypeStream.

Definition at line 38 of file PAbstractTraitBackend.h.

38{}

◆ testFunction()

virtual void PAbstractTraitBackend::testFunction ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
inlinevirtualinherited

Reimplemented in CppTraitCopy, CppTraitEmpty, CppTraitFromString, and CppTraitTypeStream.

Definition at line 37 of file PAbstractTraitBackend.h.

37{}

The documentation for this class was generated from the following files:
  • /builds/CTA-LAPP/PHOENIX_LIBS2/code-generator/PhoenixGenerator/src/TraitBackEnd/CPP/CppTraitSetter/CppTraitSetter.h
  • /builds/CTA-LAPP/PHOENIX_LIBS2/code-generator/PhoenixGenerator/src/TraitBackEnd/CPP/CppTraitSetter/CppTraitSetter.cpp