001// license-header java merge-point
002//
003// Attention: generated code (by Metafacade.vsl) - do not modify!
004//
005package org.andromda.cartridges.spring.metafacades;
006
007import java.util.Collection;
008import org.andromda.metafacades.uml.ClassifierFacade;
009import org.andromda.metafacades.uml.Entity;
010
011/**
012 * Represents a Spring persistent entity
013 *
014 * Metafacade interface to be used by AndroMDA cartridges.
015 */
016public interface SpringEntity
017    extends Entity
018{
019    /**
020     * Indicates the metafacade type (used for metafacade mappings).
021     *
022     * @return boolean always <code>true</code>
023     */
024    public boolean isSpringEntityMetaType();
025
026    /**
027     * Returns all value object references (this includes all those that are inherited from any
028     * parent entities)
029     * @return Collection<ClassifierFacade>
030     */
031    public Collection<ClassifierFacade> getAllValueObjectReferences();
032
033    /**
034     * A quoted comma separated list of the names of embedded values belonging to this entity (that
035     * represented as attributes)
036     * @return String
037     */
038    public String getAttributeEmbeddedValueList();
039
040    /**
041     * Gets the Spring bean name, and optionally adds a target suffix, if 'targetSuffix' is set to
042     * true.
043     * @param targetSuffix boolean
044     * @return String
045     */
046    public String getBeanName(boolean targetSuffix);
047
048    /**
049     * The DAO base class name.  This is the abstract DAO that contains CRUD operations
050     * as well as any generated finders defined on an entity.
051     * @return String
052     */
053    public String getDaoBaseName();
054
055    /**
056     * The business operations modeled on the entity that will be generated on the DAO (Data Access
057     * Object).
058     * @return Collection<SpringEntityOperation>
059     */
060    public Collection<SpringEntityOperation> getDaoBusinessOperations();
061
062    /**
063     * The DAO implementation class name.
064     * @return String
065     */
066    public String getDaoImplementationName();
067
068    /**
069     * The name of the DAO for the specified entity.
070     * @return String
071     */
072    public String getDaoName();
073
074    /**
075     * The constant name denoting no transformation is to be applied.
076     * @return String
077     */
078    public String getDaoNoTransformationConstantName();
079
080    /**
081     * The implementation name for the entity.
082     * @return String
083     */
084    public String getEntityImplementationName();
085
086    /**
087     * The name of the plain entity name.
088     * @return String
089     */
090    public String getEntityName();
091
092    /**
093     * The fully qualified name of the base DAO.
094     * @return String
095     */
096    public String getFullyQualifiedDaoBaseName();
097
098    /**
099     * 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}