umbrello  2.35.1
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
codegenerationpolicy.h
Go to the documentation of this file.
1 /*
2  SPDX-License-Identifier: GPL-2.0-or-later
3 
4  SPDX-FileCopyrightText: 2003 Brian Thomas <thomas@mail630.gsfc.nasa.gov>
5  SPDX-FileCopyrightText: 2004-2020 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
6 */
7 
8 #ifndef CODEGENERATIONPOLICY_H
9 #define CODEGENERATIONPOLICY_H
10 
11 #include "basictypes.h"
12 
13 #include <QDir>
14 #include <QObject>
15 
16 class QWidget;
18 
25 class CodeGenerationPolicy : public QObject
26 {
27  Q_OBJECT
28 public:
29 
44  enum NewLineType {UNIX=0, DOS, MAC};
47 
50 
51  virtual ~CodeGenerationPolicy();
52 
53  void setOverwritePolicy(OverwritePolicy new_var);
55 
56  void setCodeVerboseSectionComments(bool new_var);
57  bool getCodeVerboseSectionComments() const;
58 
59  void setCodeVerboseDocumentComments(bool new_var);
60  bool getCodeVerboseDocumentComments() const;
61 
62  void setHeadingFileDir(const QString & path);
63  QString getHeadingFileDir() const;
64 
65  void setIncludeHeadings(bool new_var);
66  bool getIncludeHeadings() const;
67 
68  void setOutputDirectory(QDir new_var);
69  QDir getOutputDirectory();
70 
71  void setLineEndingType(NewLineType type);
73 
74  QString getNewLineEndingChars() const;
75 
78 
79  void setIndentationAmount(int amount);
81 
82  QString getIndentation() const;
83 
84  void setModifyPolicy(ModifyNamePolicy new_var);
86 
87  void setAutoGenerateConstructors(bool var);
89 
92 
95 
96  virtual CodeGenerationPolicyPage * createPage(QWidget *parent = 0, const char * name = 0);
97 
98  QString getHeadingFile(const QString& str);
99 
100  virtual void setDefaults(CodeGenerationPolicy * defaults, bool emitUpdateSignal = true);
101  virtual void setDefaults(bool emitUpdateSignal = true);
102 
103  virtual void writeConfig();
104 
106 
107  void setCommentStyle(CommentStyle new_var);
109 
110 signals:
111 
112  void modifiedCodeContent();
113 
114 protected:
115 
116 /*
117  // Policy of how to deal with overwriting existing files. Allowed values are "ask", "yes" and "no".
118  OverwritePolicy m_overwritePolicy;
119 
120  // Whether or not verbose code commenting for sections is desired.
121  // If true, comments for sections will be written even if the section is empty.
122  bool m_codeVerboseSectionComments;
123 
124  // Whether or not verbose code commenting for documentation is desired.
125  // If true, documentation for various code will be written even if no
126  //code would normally be created at that point in the file.
127  bool m_codeVerboseDocumentComments;
128 
129  QDir m_headingFiles; // location of the header file template.
130  bool m_includeHeadings;
131  QDir m_outputDirectory; // location of where output files will go.
132  NewLineType m_lineEndingType; // What type of line ending characters to use.
133  IndentationType m_indentationType; // The amount and type of whitespace to indent with.
134  int m_indentationAmount; // The amount of units to indent with.
135  ModifyNamePolicy m_modifyPolicy;
136  bool m_autoGenerateConstructors;
137  CommentStyle m_commentStyle;
138  Uml::Visibility::Value m_attributeAccessorScope;
139  Uml::Visibility::Value m_associationFieldScope;
140 */
141 
142  // these 2 private fields 'cache' the string values of other fields we may frequently call for
144  QString m_indentation;
145 
146  void calculateIndentation();
147 
148 /*
149 protected:
150 
151  void initFields();
152 */
153 };
154 
155 #endif // CODEGENERATIONPOLICY_H
CodeGenerationPolicy::Ok
@ Ok
Definition: codegenerationpolicy.h:42
document
GNU GENERAL PUBLIC LICENSE June Free Software Inc Franklin Fifth USA Everyone is permitted to copy and distribute verbatim copies of this license document
Definition: GPL-2.0-only.txt:8
UmbrelloSettings::setDefaultAttributeAccessorScope
static void setDefaultAttributeAccessorScope(Uml::Visibility::Enum v)
Definition: umbrellosettings.h:1631
CodeGenerationPolicy::NONE
@ NONE
Definition: codegenerationpolicy.h:45
UmbrelloSettings::setOverwritePolicy
static void setOverwritePolicy(CodeGenerationPolicy::OverwritePolicy v)
Definition: umbrellosettings.h:1918
CodeGenerationPolicy::~CodeGenerationPolicy
virtual ~CodeGenerationPolicy()
Definition: codegenerationpolicy.cpp:60
CodeGenerationPolicy::setIndentationType
void setIndentationType(IndentationType type)
Definition: codegenerationpolicy.cpp:259
MAXLINES
#define MAXLINES
Definition: codegenerationpolicy.cpp:35
CodeGenerationPolicy::modifiedCodeContent
void modifiedCodeContent()
Definition: moc_codegenerationpolicy.cpp:129
Settings::CodeGenerationState::indentationType
CodeGenerationPolicy::IndentationType indentationType
Definition: optionstate.h:167
CodeGenerationPolicy::Ask
@ Ask
Definition: codegenerationpolicy.h:42
CodeGenerationPolicy::setModifyPolicy
void setModifyPolicy(ModifyNamePolicy new_var)
Definition: codegenerationpolicy.cpp:333
CodeGenerationPolicy::setAssociationFieldScope
void setAssociationFieldScope(Uml::Visibility::Enum var)
Definition: codegenerationpolicy.cpp:389
UmbrelloSettings::setIndentationAmount
static void setIndentationAmount(int v)
Definition: umbrellosettings.h:1771
UmbrelloSettings::forceSections
static bool forceSections()
Definition: umbrellosettings.h:1697
CodeGenerationPolicy::IndentationType
IndentationType
Definition: codegenerationpolicy.h:45
UmbrelloSettings::indentationAmount
static int indentationAmount()
Definition: umbrellosettings.h:1788
UmbrelloSettings::setForceSections
static void setForceSections(bool v)
Definition: umbrellosettings.h:1687
Settings::CodeGenerationState::lineEndingType
CodeGenerationPolicy::NewLineType lineEndingType
Definition: optionstate.h:168
CodeGenerationPolicy::setCodeVerboseDocumentComments
void setCodeVerboseDocumentComments(bool new_var)
Definition: codegenerationpolicy.cpp:135
UmbrelloSettings::setHeadingsDirectory
static void setHeadingsDirectory(const QString &v)
Definition: umbrellosettings.h:1715
CodeGenerationPolicy::calculateIndentation
void calculateIndentation()
Definition: codegenerationpolicy.cpp:308
UmbrelloSettings::indentationType
static CodeGenerationPolicy::IndentationType indentationType()
Definition: umbrellosettings.h:1816
UmbrelloSettings::autoGenEmptyConstructors
static bool autoGenEmptyConstructors()
Definition: umbrellosettings.h:1557
CodeGenerationPolicy::setCodeVerboseSectionComments
void setCodeVerboseSectionComments(bool new_var)
Definition: codegenerationpolicy.cpp:111
CodeGenerationPolicy::MAC
@ MAC
Definition: codegenerationpolicy.h:44
UmbrelloSettings::lineEndingType
static CodeGenerationPolicy::NewLineType lineEndingType()
Definition: umbrellosettings.h:1844
CodeGenerationPolicy::CodeGenerationPolicy
CodeGenerationPolicy()
Definition: codegenerationpolicy.cpp:52
CodeGenerationPolicy::setAutoGenerateConstructors
void setAutoGenerateConstructors(bool var)
Definition: codegenerationpolicy.cpp:351
CodeGenerationPolicy::MultiLine
@ MultiLine
Definition: codegenerationpolicy.h:46
UmbrelloSettings::setIndentationType
static void setIndentationType(CodeGenerationPolicy::IndentationType v)
Definition: umbrellosettings.h:1806
umbrellosettings.h
CodeGenerationPolicy::setAttributeAccessorScope
void setAttributeAccessorScope(Uml::Visibility::Enum var)
Definition: codegenerationpolicy.cpp:370
Settings::CodeGenerationState::indentationAmount
int indentationAmount
Definition: optionstate.h:166
CodeGenerationPolicy::UNIX
@ UNIX
Definition: codegenerationpolicy.h:44
CodeGenerationPolicy::Never
@ Never
Definition: codegenerationpolicy.h:42
UmbrelloSettings::overwritePolicy
static CodeGenerationPolicy::OverwritePolicy overwritePolicy()
Definition: umbrellosettings.h:1928
UmbrelloSettings::setCommentStyle
static void setCommentStyle(CodeGenerationPolicy::CommentStyle v)
Definition: umbrellosettings.h:1575
Settings::CodeGenerationState::overwritePolicy
CodeGenerationPolicy::OverwritePolicy overwritePolicy
Definition: optionstate.h:171
CodeGenerationPolicy::SPACE
@ SPACE
Definition: codegenerationpolicy.h:45
CodeGenerationPolicy::m_lineEndingChars
QString m_lineEndingChars
Definition: codegenerationpolicy.h:143
UmbrelloSettings::headingsDirectory
static QString headingsDirectory()
Definition: umbrellosettings.h:1725
Settings::CodeGenerationState::forceSections
bool forceSections
Definition: optionstate.h:163
UmbrelloSettings::setAutoGenEmptyConstructors
static void setAutoGenEmptyConstructors(bool v)
Definition: umbrellosettings.h:1547
CodeGenerationPolicy::setOverwritePolicy
void setOverwritePolicy(OverwritePolicy new_var)
Definition: codegenerationpolicy.cpp:70
UmbrelloSettings::outputDirectory
static QString outputDirectory()
Definition: umbrellosettings.h:1900
CodeGenerationPolicy::setDefaults
virtual void setDefaults(CodeGenerationPolicy *defaults, bool emitUpdateSignal=true)
Definition: codegenerationpolicy.cpp:425
CodeGenerationPolicy::emitModifiedCodeContentSig
void emitModifiedCodeContentSig()
Definition: codegenerationpolicy.cpp:416
UmbrelloSettings::setOutputDirectory
static void setOutputDirectory(const QString &v)
Definition: umbrellosettings.h:1890
CodeGenerationPolicy::getIncludeHeadings
bool getIncludeHeadings() const
Definition: codegenerationpolicy.cpp:187
Settings::CodeGenerationState::defaultAttributeAccessorScope
Uml::Visibility::Enum defaultAttributeAccessorScope
Definition: optionstate.h:161
codegenerationpolicypage.h
CodeGenerationPolicy::Cancel
@ Cancel
Definition: codegenerationpolicy.h:42
Uml::ModelType::toString
QString toString(Enum item)
Definition: basictypes.cpp:33
CodeGenerationPolicy::setHeadingFileDir
void setHeadingFileDir(const QString &path)
Definition: codegenerationpolicy.cpp:158
Settings::OptionState::codeGenerationState
CodeGenerationState codeGenerationState
Definition: optionstate.h:327
CodeGenerationPolicy::CommentStyle
CommentStyle
Definition: codegenerationpolicy.h:46
Settings::optionState
OptionState & optionState()
Definition: optionstate.cpp:357
CodeGenerationPolicy::getAssociationFieldScope
Uml::Visibility::Enum getAssociationFieldScope()
Definition: codegenerationpolicy.cpp:399
CodeGenerationPolicy::writeConfig
virtual void writeConfig()
Definition: codegenerationpolicy.cpp:504
CodeGenerationPolicy::getLineEndingType
NewLineType getLineEndingType()
Definition: codegenerationpolicy.cpp:240
UmbrelloSettings::defaultAssocFieldScope
static Uml::Visibility::Enum defaultAssocFieldScope()
Definition: umbrellosettings.h:1613
Settings::CodeGenerationState::outputDirectory
QDir outputDirectory
Definition: optionstate.h:170
UmbrelloSettings::setModnamePolicy
static void setModnamePolicy(CodeGenerationPolicy::ModifyNamePolicy v)
Definition: umbrellosettings.h:1862
UmbrelloSettings::setIncludeHeadings
static void setIncludeHeadings(bool v)
Definition: umbrellosettings.h:1743
CodeGenerationPolicy::getHeadingFile
QString getHeadingFile(const QString &str)
Definition: codegenerationpolicy.cpp:542
CodeGenerationPolicy::getModifyPolicy
ModifyNamePolicy getModifyPolicy() const
Definition: codegenerationpolicy.cpp:342
CodeGenerationPolicy::setIncludeHeadings
void setIncludeHeadings(bool new_var)
Definition: codegenerationpolicy.cpp:177
CodeGenerationPolicy::TAB
@ TAB
Definition: codegenerationpolicy.h:45
Settings::CodeGenerationState::modnamePolicy
CodeGenerationPolicy::ModifyNamePolicy modnamePolicy
Definition: optionstate.h:169
CodeGenerationPolicy::getIndentation
QString getIndentation() const
Definition: codegenerationpolicy.cpp:300
CodeGenerationPolicy::No
@ No
Definition: codegenerationpolicy.h:43
CodeGenerationPolicy::setCommentStyle
void setCommentStyle(CommentStyle new_var)
Definition: codegenerationpolicy.cpp:90
CodeGenerationPolicy::getHeadingFileDir
QString getHeadingFileDir() const
Definition: codegenerationpolicy.cpp:168
UmbrelloSettings::setDefaultAssocFieldScope
static void setDefaultAssocFieldScope(Uml::Visibility::Enum v)
Definition: umbrellosettings.h:1603
basictypes.h
codegenerationpolicy.h
CodeGenerationPolicy::OverwritePolicy
OverwritePolicy
Definition: codegenerationpolicy.h:42
CodeGenerationPolicy
Definition: codegenerationpolicy.h:25
CodeGenerationPolicy::getCodeVerboseDocumentComments
bool getCodeVerboseDocumentComments() const
Definition: codegenerationpolicy.cpp:148
CodeGenerationPolicyPage
Definition: codegenerationpolicypage.h:16
UmbrelloSettings::forceDoc
static bool forceDoc()
Definition: umbrellosettings.h:1669
Settings::CodeGenerationState::includeHeadings
bool includeHeadings
Definition: optionstate.h:165
CodeGenerationPolicy::getIndentationType
IndentationType getIndentationType()
Definition: codegenerationpolicy.cpp:269
CodeGenerationPolicy::setLineEndingType
void setLineEndingType(NewLineType type)
Definition: codegenerationpolicy.cpp:217
CodeGenerationPolicy::getCommentStyle
CommentStyle getCommentStyle()
Definition: codegenerationpolicy.cpp:100
CodeGenerationPolicy::getOverwritePolicy
OverwritePolicy getOverwritePolicy() const
Definition: codegenerationpolicy.cpp:81
UMLApp::app
static UMLApp * app()
Definition: uml.cpp:349
Settings::CodeGenerationState::autoGenEmptyConstructors
bool autoGenEmptyConstructors
Definition: optionstate.h:158
CodeGenerationPolicy::ModifyNamePolicy
ModifyNamePolicy
Definition: codegenerationpolicy.h:43
CodeGenerationPolicy::getIndentationAmount
int getIndentationAmount()
Definition: codegenerationpolicy.cpp:291
CodeGenerationPolicy::SingleLine
@ SingleLine
Definition: codegenerationpolicy.h:46
Settings::CodeGenerationState::commentStyle
CodeGenerationPolicy::CommentStyle commentStyle
Definition: optionstate.h:159
logWarn0
#define logWarn0(s)
Definition: uml.h:538
Uml::Visibility::Enum
Enum
Definition: basictypes.h:45
UmbrelloSettings::includeHeadings
static bool includeHeadings()
Definition: umbrellosettings.h:1753
UmbrelloSettings::setLineEndingType
static void setLineEndingType(CodeGenerationPolicy::NewLineType v)
Definition: umbrellosettings.h:1834
CodeGenerationPolicy::setIndentationAmount
void setIndentationAmount(int amount)
Definition: codegenerationpolicy.cpp:278
CodeGenerationPolicy::DOS
@ DOS
Definition: codegenerationpolicy.h:44
uml.h
CodeGenerationPolicy::setOutputDirectory
void setOutputDirectory(QDir new_var)
Definition: codegenerationpolicy.cpp:197
CodeGenerationPolicy::NewLineType
NewLineType
Definition: codegenerationpolicy.h:44
CodeGenerationPolicy::getNewLineEndingChars
QString getNewLineEndingChars() const
Definition: codegenerationpolicy.cpp:249
debug_utils.h
CodeGenerationPolicy::getOutputDirectory
QDir getOutputDirectory()
Definition: codegenerationpolicy.cpp:207
CodeGenerationPolicy::Underscore
@ Underscore
Definition: codegenerationpolicy.h:43
UmbrelloSettings::defaultAttributeAccessorScope
static Uml::Visibility::Enum defaultAttributeAccessorScope()
Definition: umbrellosettings.h:1641
UmbrelloSettings::setForceDoc
static void setForceDoc(bool v)
Definition: umbrellosettings.h:1659
Settings::CodeGenerationState::defaultAssocFieldScope
Uml::Visibility::Enum defaultAssocFieldScope
Definition: optionstate.h:160
CodeGenerationPolicy::Capitalise
@ Capitalise
Definition: codegenerationpolicy.h:43
CodeGenerationPolicy::getAttributeAccessorScope
Uml::Visibility::Enum getAttributeAccessorScope()
Definition: codegenerationpolicy.cpp:380
Settings::CodeGenerationState::forceDoc
bool forceDoc
Definition: optionstate.h:162
UmbrelloSettings::commentStyle
static CodeGenerationPolicy::CommentStyle commentStyle()
Definition: umbrellosettings.h:1585
CodeGenerationPolicy::getAutoGenerateConstructors
bool getAutoGenerateConstructors()
Definition: codegenerationpolicy.cpp:361
UmbrelloSettings::modnamePolicy
static CodeGenerationPolicy::ModifyNamePolicy modnamePolicy()
Definition: umbrellosettings.h:1872
CodeGenerationPolicy::createPage
virtual CodeGenerationPolicyPage * createPage(QWidget *parent=0, const char *name=0)
Definition: codegenerationpolicy.cpp:408
CodeGenerationPolicy::getCodeVerboseSectionComments
bool getCodeVerboseSectionComments() const
Definition: codegenerationpolicy.cpp:123
umldoc.h
CodeGenerationPolicy::m_indentation
QString m_indentation
Definition: codegenerationpolicy.h:144
Settings::CodeGenerationState::headingsDirectory
QDir headingsDirectory
Definition: optionstate.h:164