blob: 7a4a2ce92417186442a6d2e4bad6836431ab5d8f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* copyright (C) 2003-2007 *
* Umbrello UML Modeller Authors <[email protected]> *
***************************************************************************/
#ifndef ENTITY_H
#define ENTITY_H
#include "classifier.h"
class UMLEntityAttribute;
/**
* This class contains the non-graphical information required for a UML
* Entity.
* This class inherits from @ref UMLClassifier which contains most of the
* information.
*
* @short Non-graphical Information for an Entity.
* @author Jonathan Riddell
* Bugs and comments to [email protected] or http://bugs.kde.org
*/
class UMLEntity : public UMLClassifier {
Q_OBJECT
public:
/**
* Sets up an entity.
*
* @param name The name of the Entity.
* @param id The unique id of the Entity.
*/
explicit UMLEntity(const QString& name = "", Uml::IDType id = Uml::id_None);
/**
* Standard deconstructor.
*/
virtual ~UMLEntity();
/**
* Overloaded '==' operator.
*/
bool operator==(UMLEntity& rhs);
/**
* Copy the internal presentation of this object into the new
* object.
*/
virtual void copyInto(UMLEntity* rhs) const;
/**
* Make a clone of this object.
*/
virtual UMLObject* clone() const;
/**
* Creates an entity attribute for the parent concept.
* Reimplementation of method from UMLClassifier.
*
* @param name An optional name, used by when creating through UMLListView
* @param type An optional type, used by when creating through UMLListView
* @return The UMLEntityAttribute created
*/
UMLAttribute* createAttribute(const QString &name = QString::null,
UMLObject *type = 0);
/**
* Adds an entityAttribute to the entity.
*
* @param name The name of the entityAttribute.
* @param id The id of the entityAttribute (optional.)
* If omitted a new ID is assigned internally.
* @return Pointer to the UMLEntityAttribute created.
*/
UMLObject* addEntityAttribute(const QString &name, Uml::IDType id = Uml::id_None);
/**
* Adds an already created entityAttribute.
* The entityAttribute object must not belong to any other concept.
*
* @param att Pointer to the UMLEntityAttribute.
* @param Log Pointer to the IDChangeLog.
* @return True if the entityAttribute was successfully added.
*/
bool addEntityAttribute(UMLEntityAttribute* att, IDChangeLog* Log = 0);
/**
* Adds an entityAttribute to the entity, at the given position.
* If position is negative or too large, the entityAttribute is added
* to the end of the list.
*
* @param att Pointer to the UMLEntityAttribute.
* @param position Position index for the insertion.
* @return True if the entityAttribute was successfully added.
*/
//TODO: give default value -1 to position (append) - now it conflicts with the method above..
bool addEntityAttribute(UMLEntityAttribute* att, int position );
/**
* Removes an entityAttribute from the class.
*
* @param a The entityAttribute to remove.
* @return Count of the remaining entityAttributes after removal.
* Returns -1 if the given entityAttribute was not found.
*/
int removeEntityAttribute(UMLClassifierListItem* a);
/**
* Emit the entityAttributeRemoved signal.
*/
void signalEntityAttributeRemoved(UMLClassifierListItem *eattr);
/**
* Returns the number of entityAttributes for the class.
*
* @return The number of entityAttributes for the class.
*/
int entityAttributes() ;
/**
* Resolve the types referenced by our UMLEntityAttributes.
* Reimplements the method from UMLClassifier.
*/
virtual bool resolveRef();
/**
* Creates the <UML:Entity> element including its entityliterals.
*/
virtual void saveToXMI(QDomDocument& qDoc, QDomElement& qElement);
signals:
void entityAttributeAdded(UMLClassifierListItem*);
void entityAttributeRemoved(UMLClassifierListItem*);
protected:
/**
* Loads the <UML:Entity> element including its entityAttributes.
*/
bool load(QDomElement& element);
private:
/**
* Initializes key variables of the class.
*/
void init();
};
#endif // ENTITY_H
|