001// license-header java merge-point
002//
003// Attention: generated code (by Metafacade.vsl) - do not modify!
004//
005package org.andromda.metafacades.uml;
006
007import java.util.List;
008
009/**
010 * An Entity that is Manageable: will produce CRUD operations in the EntityManager implementation.
011 *
012 * Metafacade interface to be used by AndroMDA cartridges.
013 */
014public interface ManageableEntity
015    extends Entity
016{
017    /**
018     * Indicates the metafacade type (used for metafacade mappings).
019     *
020     * @return boolean always <code>true</code>
021     */
022    public boolean isManageableEntityMetaType();
023
024    /**
025     * All entities to which can be browsed from this entity. Currently this property will simple
026     * hold all entities, so the value is the same for any arbitrary entity. Hiding entities can be
027     * done in the presentation tier, for example depending on runtime security information.
028     * @return List<ManageableEntity>
029     */
030    public List<ManageableEntity> getAllManageables();
031
032    /**
033     * The attribute used as a key link to display values for this entity.
034     * @return ManageableEntityAttribute
035     */
036    public ManageableEntityAttribute getDisplayAttribute();
037
038    /**
039     * The fully qualified service name of the entity.
040     * @return String
041     */
042    public String getFullyQualifiedManageableServiceName();
043
044    /**
045     * The associations to other entities from this entity.
046     * @return List<ManageableEntityAssociationEnd>
047     */
048    public List<ManageableEntityAssociationEnd> getManageableAssociationEnds();
049
050    /**
051     * Lists the attributes that can be managed for this entity. This feature is particularly
052     * important when resolving inherited attributes and ids.
053     * @return List<ManageableEntityAttribute>
054     */
055    public List<ManageableEntityAttribute> getManageableAttributes();
056
057    /**
058     * The identifier used when managing this entity.
059     * @return ManageableEntityAttribute
060     */
061    public ManageableEntityAttribute getManageableIdentifier();
062
063    /**
064     * ManageableAttributes and ManageableAssociationEnds
065     * @return List<ModelElementFacade>
066     */
067    public List<ModelElementFacade> getManageableMembers();
068
069    /**
070     * The entity package name.
071     * @return String
072     */
073    public String getManageablePackageName();
074
075    /**
076     * The Package path of the Entity
077     * @return String
078     */
079    public String getManageablePackagePath();
080
081    /**
082     * The entity accessor (getter) call.
083     * @return String
084     */
085    public String getManageableServiceAccessorCall();
086
087    /**
088     * The service full path of the entity.
089     * @return String
090     */
091    public String getManageableServiceFullPath();
092
093    /**
094     * The service name of the entity.
095     * @return String
096     */
097    public String getManageableServiceName();
098
099    /**
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}