1 // license-header java merge-point
2 //
3 // Attention: generated code (by Metafacade.vsl) - do not modify!
4 //
5 package org.andromda.metafacades.uml;
6
7 import java.util.List;
8
9 /**
10 * An Entity that is Manageable: will produce CRUD operations in the EntityManager implementation.
11 *
12 * Metafacade interface to be used by AndroMDA cartridges.
13 */
14 public interface ManageableEntity
15 extends Entity
16 {
17 /**
18 * Indicates the metafacade type (used for metafacade mappings).
19 *
20 * @return boolean always <code>true</code>
21 */
22 public boolean isManageableEntityMetaType();
23
24 /**
25 * All entities to which can be browsed from this entity. Currently this property will simple
26 * hold all entities, so the value is the same for any arbitrary entity. Hiding entities can be
27 * done in the presentation tier, for example depending on runtime security information.
28 * @return List<ManageableEntity>
29 */
30 public List<ManageableEntity> getAllManageables();
31
32 /**
33 * The attribute used as a key link to display values for this entity.
34 * @return ManageableEntityAttribute
35 */
36 public ManageableEntityAttribute getDisplayAttribute();
37
38 /**
39 * The fully qualified service name of the entity.
40 * @return String
41 */
42 public String getFullyQualifiedManageableServiceName();
43
44 /**
45 * The associations to other entities from this entity.
46 * @return List<ManageableEntityAssociationEnd>
47 */
48 public List<ManageableEntityAssociationEnd> getManageableAssociationEnds();
49
50 /**
51 * Lists the attributes that can be managed for this entity. This feature is particularly
52 * important when resolving inherited attributes and ids.
53 * @return List<ManageableEntityAttribute>
54 */
55 public List<ManageableEntityAttribute> getManageableAttributes();
56
57 /**
58 * The identifier used when managing this entity.
59 * @return ManageableEntityAttribute
60 */
61 public ManageableEntityAttribute getManageableIdentifier();
62
63 /**
64 * ManageableAttributes and ManageableAssociationEnds
65 * @return List<ModelElementFacade>
66 */
67 public List<ModelElementFacade> getManageableMembers();
68
69 /**
70 * The entity package name.
71 * @return String
72 */
73 public String getManageablePackageName();
74
75 /**
76 * The Package path of the Entity
77 * @return String
78 */
79 public String getManageablePackagePath();
80
81 /**
82 * The entity accessor (getter) call.
83 * @return String
84 */
85 public String getManageableServiceAccessorCall();
86
87 /**
88 * The service full path of the entity.
89 * @return String
90 */
91 public String getManageableServiceFullPath();
92
93 /**
94 * The service name of the entity.
95 * @return String
96 */
97 public String getManageableServiceName();
98
99 /**
100 * The maximum number of rows to load from the database.
101 * @return int
102 */
103 public int getMaximumListSize();
104
105 /**
106 * The maximum number of rows to load from the database.
107 * @return int
108 */
109 public int getPageSize();
110
111 /**
112 * Other Manageable Entities which reference this entity.
113 * @return List<ManageableEntity>
114 */
115 public List<ManageableEntity> getReferencingManageables();
116
117 /**
118 * The Actors (Roles) which can manage the Entity.
119 * @return List<ActorFacade>
120 */
121 public List<ActorFacade> getUsers();
122
123 /**
124 * Create a create operation on the entity manager?
125 * @return boolean
126 */
127 public boolean isCreate();
128
129 /**
130 * Create a delete operation on the entity manager?
131 * @return boolean
132 */
133 public boolean isDelete();
134
135 /**
136 * True: Entity is manageable.
137 * @return boolean
138 */
139 public boolean isManageable();
140
141 /**
142 * Create a read operation on the entity manager?
143 * @return boolean
144 */
145 public boolean isRead();
146
147 /**
148 * The maximum number of rows to load from the database.
149 * @return boolean
150 */
151 public boolean isResolveable();
152
153 /**
154 * Create an update operation on the entity manager?
155 * @return boolean
156 */
157 public boolean isUpdate();
158
159 /**
160 * Returns a string with the attributes without wrapper types.
161 * @param withTypes boolean
162 * @return String
163 */
164 public String listManageableMembers(boolean withTypes);
165
166 /**
167 * Returns a string with the attributes and wrapper types.
168 * @return String
169 */
170 public String listManageableMembersWithWrapperTypes();
171 }