1 // license-header java merge-point
2 //
3 // Attention: generated code (by Metafacade.vsl) - do not modify!
4 //
5 package org.andromda.cartridges.spring.metafacades;
6
7 import java.util.Collection;
8 import org.andromda.metafacades.uml.ClassifierFacade;
9 import org.andromda.metafacades.uml.Entity;
10
11 /**
12 * Represents a Spring persistent entity
13 *
14 * Metafacade interface to be used by AndroMDA cartridges.
15 */
16 public interface SpringEntity
17 extends Entity
18 {
19 /**
20 * Indicates the metafacade type (used for metafacade mappings).
21 *
22 * @return boolean always <code>true</code>
23 */
24 public boolean isSpringEntityMetaType();
25
26 /**
27 * Returns all value object references (this includes all those that are inherited from any
28 * parent entities)
29 * @return Collection<ClassifierFacade>
30 */
31 public Collection<ClassifierFacade> getAllValueObjectReferences();
32
33 /**
34 * A quoted comma separated list of the names of embedded values belonging to this entity (that
35 * represented as attributes)
36 * @return String
37 */
38 public String getAttributeEmbeddedValueList();
39
40 /**
41 * Gets the Spring bean name, and optionally adds a target suffix, if 'targetSuffix' is set to
42 * true.
43 * @param targetSuffix boolean
44 * @return String
45 */
46 public String getBeanName(boolean targetSuffix);
47
48 /**
49 * The DAO base class name. This is the abstract DAO that contains CRUD operations
50 * as well as any generated finders defined on an entity.
51 * @return String
52 */
53 public String getDaoBaseName();
54
55 /**
56 * The business operations modeled on the entity that will be generated on the DAO (Data Access
57 * Object).
58 * @return Collection<SpringEntityOperation>
59 */
60 public Collection<SpringEntityOperation> getDaoBusinessOperations();
61
62 /**
63 * The DAO implementation class name.
64 * @return String
65 */
66 public String getDaoImplementationName();
67
68 /**
69 * The name of the DAO for the specified entity.
70 * @return String
71 */
72 public String getDaoName();
73
74 /**
75 * The constant name denoting no transformation is to be applied.
76 * @return String
77 */
78 public String getDaoNoTransformationConstantName();
79
80 /**
81 * The implementation name for the entity.
82 * @return String
83 */
84 public String getEntityImplementationName();
85
86 /**
87 * The name of the plain entity name.
88 * @return String
89 */
90 public String getEntityName();
91
92 /**
93 * The fully qualified name of the base DAO.
94 * @return String
95 */
96 public String getFullyQualifiedDaoBaseName();
97
98 /**
99 * The fully qualified name of the DAO implemetation.
100 * @return String
101 */
102 public String getFullyQualifiedDaoImplementationName();
103
104 /**
105 * The fully qualified name of the DAO.
106 * @return String
107 */
108 public String getFullyQualifiedDaoName();
109
110 /**
111 * The fully qualified name of the entity implementation class.
112 * @return String
113 */
114 public String getFullyQualifiedEntityImplementationName();
115
116 /**
117 * The fully qualified name of the entity class.
118 * @return String
119 */
120 public String getFullyQualifiedEntityName();
121
122 /**
123 * Return the value of the tagged value andromda_hibernate_inheritance.
124 * @return String
125 */
126 public String getHibernateInheritanceStrategy();
127
128 /**
129 * Travels up the inheritance hierarchy and retrieves the root of this entity. If the root is
130 * the entity itself then just the entity is returned.
131 * @return SpringEntity
132 */
133 public SpringEntity getRoot();
134
135 /**
136 * A Classifier is a classification of instances - it describes a set of instances that have
137 * features
138 * in common. Can specify a generalization hierarchy by referencing its general classifiers. It
139 * may be
140 * a Class, DataType, PrimitiveType, Association, Collaboration, UseCase, etc. Can specify a
141 * generalization hierarchy by referencing its general classifiers. Has the capability to own
142 * collaboration uses. These collaboration uses link a collaboration with the classifier to give
143 * a
144 * description of the workings of the classifier. Classifier is defined to be a kind of
145 * templateable
146 * element so that a classifier can be parameterized. It is also defined to be a kind of
147 * parameterable
148 * element so that a classifier can be a formal template parameter.
149 * @return Collection<ClassifierFacade>
150 */
151 public Collection<ClassifierFacade> getValueObjectReferences();
152
153 /**
154 * Indicates whether or not any business DAO operations are present.
155 * @return boolean
156 */
157 public boolean isDaoBusinessOperationsPresent();
158
159 /**
160 * True if an implementation is required for the dao class, this is the case when there are
161 * business operations or value-object transformation.
162 * @return boolean
163 */
164 public boolean isDaoImplementationRequired();
165
166 /**
167 * Return true if the hibernate inheritance strategy is class.
168 * @return boolean
169 */
170 public boolean isHibernateInheritanceClass();
171
172 /**
173 * Return true if the hibernate inheritance strategy is concrete.
174 * @return boolean
175 */
176 public boolean isHibernateInheritanceConcrete();
177
178 /**
179 * Return true if the hibernate inheritance strategy is interface.
180 * @return boolean
181 */
182 public boolean isHibernateInheritanceInterface();
183
184 /**
185 * Return true if the hibernate inheritance strategy is subclass.
186 * @return boolean
187 */
188 public boolean isHibernateInheritanceSubclass();
189
190 /**
191 * Indicates whether or not this entity requires a Hibernate mapping cfg.xml file within the
192 * Spring application context.
193 * @return boolean
194 */
195 public boolean isRequiresHibernateMapping();
196
197 /**
198 * Returns true if this entity is meant to be used in a richt client application.
199 * @return boolean
200 */
201 public boolean isRichClient();
202 }