codeclassfield.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef CODECLASSFIELD_H
00020 #define CODECLASSFIELD_H
00021
00022 #include "codeaccessormethodlist.h"
00023 #include "codeclassfielddeclarationblock.h"
00024 #include "codeparameter.h"
00025 #include "codeaccessormethod.h"
00026
00027
00028
00029
00030 class ClassifierCodeDocument;
00031 class UMLAttribute;
00032 class UMLObject;
00033 class UMLRole;
00034
00040 class CodeClassField : public CodeParameter
00041 {
00042 Q_OBJECT
00043 public:
00044
00045 enum ClassFieldType { Attribute, PlainAssociation, Self, Aggregation, Composition, Unknown_Assoc };
00046
00047
00048
00049
00053 CodeClassField ( ClassifierCodeDocument * parentDoc , UMLAttribute * attrib );
00054 CodeClassField ( ClassifierCodeDocument * parentDoc , UMLRole * role);
00055
00064 void finishInitialization();
00065
00066
00067
00071 virtual ~CodeClassField ( );
00072
00073
00074
00075
00076
00077
00078
00083
00084
00085
00086 QString getTypeName ( );
00087
00091 CodeClassFieldDeclarationBlock * getDeclarationCodeBlock( );
00092
00098 CodeAccessorMethodList getMethodList();
00099
00103 CodeAccessorMethod * findMethodByType(CodeAccessorMethod::AccessorType type, int role_id = -1);
00104
00109 bool fieldIsSingleValue ( );
00110
00114 ClassFieldType getClassFieldType();
00115
00116
00117 bool parentIsAttribute ( );
00118
00119
00120
00121 QString getListObjectType();
00122
00127 bool getWriteOutMethods ();
00128
00133 void setWriteOutMethods( bool val);
00134
00140 int minimumListOccurances( );
00141
00147 int maximumListOccurances( );
00148
00152 virtual void saveToXMI ( QDomDocument & doc, QDomElement & root );
00153
00157 virtual void loadFromXMI ( QDomElement & root );
00158
00162 virtual void synchronize ();
00163
00164 protected:
00165
00168 void setParentUMLObject (UMLObject * obj);
00169
00170
00171
00174 QString cleanName(const QString &name);
00175
00180 QString fixInitialStringDeclValue(QString value, const QString &type);
00181
00182
00183 void setListClassName ( const QString &className );
00184
00188 bool addMethod ( CodeAccessorMethod * add );
00189
00190 QString getUMLObjectName(UMLObject *obj);
00191
00195 bool removeMethod ( CodeAccessorMethod * remove);
00196
00197
00198
00199 void updateContent();
00200
00201 private:
00202
00203 QString m_listClassName;
00204 ClassFieldType m_classFieldType;
00205 CodeClassFieldDeclarationBlock * m_declCodeBlock;
00206 CodeAccessorMethodList m_methodVector;
00207 bool m_parentIsAttribute;
00208
00213 bool m_writeOutMethods;
00214
00218 virtual void setAttributesOnNode ( QDomDocument & doc, QDomElement & blockElement);
00219
00223 virtual void setAttributesFromNode ( QDomElement & element);
00224
00226 void initFields(bool inConstructor = false);
00227
00228
00229 void initAccessorMethods();
00230
00231 signals:
00232
00233 void modified ();
00234
00235 };
00236
00237 #endif // CODECLASSFIELD_H
This file is part of the documentation for umbrello Version 3.1.0.