001package org.andromda.cartridges.ejb3;
002
003import org.andromda.core.profile.Profile;
004import org.andromda.metafacades.uml.UMLProfile;
005
006/**
007 * The EJB3 profile. Contains the profile information (tagged values, and stereotypes) for the EJB3 cartridge.
008 *
009 * @author Vance Karimi
010 */
011public class EJB3Profile
012    extends UMLProfile
013{
014    /**
015     * The Profile instance from which we retrieve the mapped profile names.
016     */
017    private static final Profile profile = Profile.instance();
018
019    /* ----------------- Stereotypes -------------------- */
020
021    /**
022     * 'Entity' Specifies the entity bean stereotype.
023     */
024    public static final String STEREOTYPE_ENTITY =
025        profile.get("ENTITY");
026
027    /**
028     * 'MappedSuperclass' Specifies this class as a mapped/embeddable super class.
029     */
030    public static final String STEREOTYPE_MAPPED_SUPERCLASS =
031        profile.get("MAPPED_SUPERCLASS");
032
033    /**
034     * 'Service' Specifies the service bean stereotype.
035     */
036    public static final String STEREOTYPE_SERVICE =
037        profile.get("SERVICE");
038
039    /**
040     * 'MessageDriven' Specifies the JMS message driven bean stereotype.
041     */
042    public static final String STEREOTYPE_MESSAGE_DRIVEN =
043        profile.get("MESSAGE_DRIVEN");
044
045    /**
046     * 'CreateMethod' Specifies the create method stereotype - used in entity POJO
047     * and session bean.
048     */
049    public static final String STEREOTYPE_CREATE_METHOD =
050        profile.get("CREATE_METHOD");
051
052    /**
053     * Specifies the select method stereotype - used in EJB2.x
054     * This may be deprecated in future releases.
055     */
056    public static final String STEREOTYPE_SELECT_METHOD = "SelectMethod";
057
058    /**
059     * 'EnvEntry' Specifies the environment entry stereotype used on static variables
060     * to permit Resource injection.
061     */
062    public static final String STEREOTYPE_ENV_ENTRY =
063        profile.get("ENV_ENTRY");
064
065    /**
066     * 'Version' Specifies the version stereotype - optimistic lock value of an attribute of an entity.
067     */
068    public static final String STEREOTYPE_VERSION =
069        profile.get("VERSION");
070
071    /**
072     * 'ValueRef' Represents a reference to a value object - used in EJB2.x
073     * This may be deprecated in future releases.
074     */
075    public static final String STEREOTYPE_VALUE_REF =
076        profile.get("VALUE_REF");
077
078    /**
079     * 'PersistenceContext' Represents a persistence context instance referenced from a session bean.
080     */
081    public static final String STEREOTYPE_PERSISTENCE_CONTEXT =
082        profile.get("PERSISTENCE_CONTEXT");
083
084    /**
085     * 'ResourceRef' Represents a reference to a resource i.e. UserTransaction or DataSource.
086     */
087    public static final String STEREOTYPE_RESOURCE_REF =
088        profile.get("RESOURCE_REF");
089
090    /**
091     * 'UserTransaction' Represents a class used to inject a javax.transaction.UserTransaction as a resource.
092     */
093    public static final String STEREOTYPE_USER_TRANSACTION =
094        profile.get("USER_TRANSACTION");
095
096    /**
097     * 'DataSource' Represents a class used to inject a javax.sql.DataSource as a resource.
098     */
099    public static final String STEREOTYPE_DATA_SOURCE =
100        profile.get("DATA_SOURCE");
101
102    /**
103     * 'Interceptor' Represents an interceptor class for a session or message-driven bean.
104     */
105    public static final String STEREOTYPE_INTERCEPTOR =
106        profile.get("INTERCEPTOR");
107
108    /**
109     * 'RunAs' Represents a dependency from an actor that is identified to
110     * apply a run-as identity to the bean when making calls.
111     */
112    public static final String STEREOTYPE_SECURITY_RUNAS =
113        profile.get("SECURITY_RUN_AS");
114
115    /**
116     * 'Listener' Represents a callback listener class for entity, session and
117     * message driven bean classes.
118     */
119    public static final String STEREOTYPE_LISTENER =
120        profile.get("LISTENER");
121
122    /**
123     * 'Timeout' Specifies the session bean operation as a
124     * Timer Service timeout callback method.
125     */
126    public static final String STEREOTYPE_SERVICE_TIMER_TIMEOUT =
127        profile.get("SERVICE_TIMER_TIMEOUT");
128
129    /**
130     * 'FirstResult' The stereotype indicating the finder method parameter result type
131     * is assigned to be the first/index.
132     */
133    public static final String STEREOTYPE_FINDER_RESULT_TYPE_FIRST =
134        profile.get("RESULT_TYPE_FIRST");
135
136    /**
137     * 'MaxResult' The stereotype indicating the finder method parameter result type
138     * is assigned to be the max results to return.
139     */
140    public static final String STEREOTYPE_FINDER_RESULT_TYPE_MAX =
141        profile.get("RESULT_TYPE_MAX");
142
143    /**
144     * 'PostConstruct' Specifies the session/message-driven bean operation as a post-construct callback
145     */
146    public static final String STEREOTYPE_POST_CONSTRUCT =
147        profile.get("POST_CONSTRUCT");
148
149    /**
150     * 'PreDestroy' Specifies the session/message-driven bean operation as a pre-destroy callback
151     */
152    public static final String STEREOTYPE_PRE_DESTROY =
153        profile.get("PRE_DESTROY");
154
155    /**
156     * 'PostActivate' Specifies the session bean operation as a post-activate callback
157     */
158    public static final String STEREOTYPE_POST_ACTIVATE =
159        profile.get("POST_ACTIVATE");
160
161    /**
162     * 'PrePassivate' Specifies the session bean operation as a pre-passivate callback
163     */
164    public static final String STEREOTYPE_PRE_PASSIVATE =
165        profile.get("PRE_PASSIVATE");
166
167    /**
168     * 'PrePersist' Specifies the entity bean operation as a pre-persist callback
169     */
170    public static final String STEREOTYPE_PRE_PERSIST =
171        profile.get("PRE_PERSIST");
172
173    /**
174     * 'PostPersist' Specifies the entity operation as a post-persist callback
175     */
176    public static final String STEREOTYPE_POST_PERSIST =
177        profile.get("POST_PERSIST");
178
179    /**
180     * 'PreRemove' Specifies the entity bean operation as a pre-remove callback
181     */
182    public static final String STEREOTYPE_PRE_REMOVE =
183        profile.get("PRE_REMOVE");
184
185    /**
186     * 'PostRemove' Specifies the entity bean operation as a post-remove callback
187     */
188    public static final String STEREOTYPE_POST_REMOVE =
189        profile.get("POST_REMOVE");
190
191    /**
192     * 'PreUpdate' Specifies the entity bean operation as a pre-update callback
193     */
194    public static final String STEREOTYPE_PRE_UPDATE =
195        profile.get("PRE_UPDATE");
196
197    /**
198     * 'PostUpdate' Specifies the entity bean operation as a post-update callback
199     */
200    public static final String STEREOTYPE_POST_UPDATE =
201        profile.get("POST_UPDATE");
202
203    /**
204     * 'PostLoad' Specifies the entity bean operation as a post-load callback
205     */
206    public static final String STEREOTYPE_POST_LOAD =
207        profile.get("POST_LOAD");
208
209    /**
210     * 'Seam' Specifies the bean is a Seam component
211     */
212    public static final String STEREOTYPE_SEAM_COMPONENT =
213        profile.get("SEAM_COMPONENT");
214
215    /**
216     * 'Startup' Specifies that a session scope component is started
217     * immediately at session creation time, unless dependencies
218     * are specified.
219     */
220    public static final String STEREOTYPE_SEAM_COMPONENT_STARTUP =
221        profile.get("SEAM_COMPONENT_STARTUP");
222
223    /**
224     * 'In' Specifies the bean attribute is a component attribute to be injected from a context variable
225     */
226    public static final String STEREOTYPE_SEAM_BIJECTION_IN =
227        profile.get("SEAM_BIJECTION_IN");
228
229    /**
230     * 'Out' Specifies the bean attribute is a component attribute to be outjected from a context variable
231     */
232    public static final String STEREOTYPE_SEAM_BIJECTION_OUT =
233        profile.get("SEAM_BIJECTION_OUT");
234
235    /**
236     *  'Unwrap' Specifies that the object returned by the annotated getter method
237     *  is the thing that is injected instead of the component instance itself.
238     */
239    public static final String STEREOTYPE_SEAM_BIJECTION_UNWRAP =
240        profile.get("SEAM_BIJECTION_UNWRAP");
241
242    /**
243     * 'Factory' When this stereotype is used on an operation which return void
244     * that operation will be used to initialize the value of the named
245     * context variable, when the context variable has no value.
246     *
247     * When it is used on an operation that returns a value then Seam
248     * should use that value to initialize the value of the named context
249     * variable, when the context variable has no value.
250     *
251     * The context variable is specified by tagged value
252     * andromda.seam.bijection.factory.value. If the method is a getter
253     * method, default to the JavaBeans property name.
254     *
255     * If no scope is explicitly specified by tagged value
256     * andromda.seam.bijection.factory.scope, the scope of the component
257     * with the @Factory method is used (unless the component is stateless,
258     * in which case the EVENT context is used).
259     */
260    public static final String STEREOTYPE_SEAM_BIJECTION_FACTORY =
261        profile.get("SEAM_BIJECTION_FACTORY");
262
263    /**
264     * 'Logger' Specifies that a component field is to be injected with an instance
265     * of org.jboss.seam.log.Log.
266     */
267    public static final String STEREOTYPE_SEAM_BIJECTION_LOGGER =
268        profile.get("SEAM_BIJECTION_LOGGER");
269
270    /**
271     * 'RequestParameter' Specifies that a component attribute is to be injected with the
272     * value of a request parameter. Basic type conversions are performed
273     * automatically.
274     */
275    public static final String STEREOTYPE_SEAM_BIJECTION_REQUEST_PARAMETER =
276        profile.get("SEAM_BIJECTION_REQUEST_PARAMETER");
277
278    /**
279     * 'Create' Indicates that the method is a Seam component lifecycle operation
280     * and should be called when an instance of the component is instantiated by
281     * Seam.
282     */
283    public static final String STEREOTYPE_SEAM_LIFECYCLE_CREATE =
284        profile.get("SEAM_LIFECYCLE_CREATE");
285
286    /**
287     * 'Destroy' Indicates that the method is a Seam component lifecycle operation
288     * and should be called when the context ends and its context variables
289     * are destroyed.
290     * All SFSB components must define a Destroy method to guarantee
291     * destruction of the SFSB when the context ends.
292     */
293    public static final String STEREOTYPE_SEAM_LIFECYCLE_DESTROY =
294        profile.get("SEAM_LIFECYCLE_DESTROY");
295
296    /**
297     * 'Begin' Specifies that a long-running conversation begins when this method
298     * returns a non-null outcome without exception.
299     */
300    public static final String STEREOTYPE_SEAM_CONVERSATION_BEGIN =
301        profile.get("SEAM_CONVERSATION_BEGIN");
302
303    /**
304     * 'End' Specifies that a long-running conversation ends when this method
305     * returns a non-null outcome without exception.
306     */
307    public static final String STEREOTYPE_SEAM_CONVERSATION_END =
308        profile.get("SEAM_CONVERSATION_END");
309
310    /**
311     * 'BeginTask' Specifies that a long-running conversation ends when this method
312     * returns a non-null outcome without exception.
313     */
314    public static final String STEREOTYPE_SEAM_CONVERSATION_BEGIN_TASK =
315        profile.get("SEAM_CONVERSATION_BEGIN_TASK");
316
317    /**
318     * 'StartTask' "Starts" a jBPM task. Specifies that a long-running conversation
319     * begins when this method returns a non-null outcome without exception.
320     *
321     * This conversation is associated with the jBPM task specified in the
322     * named request parameter. Within the context of this conversation, a
323     * business process context is also defined, for the business process
324     * instance of the task instance.
325     *
326     * The jBPM TaskInstance will be available in a request context variable
327     * named taskInstance. The jPBM ProcessInstance will be available in a
328     * request context variable named processInstance. (Of course, these
329     * objects are available for injection via @In.)
330     */
331    public static final String STEREOTYPE_SEAM_CONVERSATION_START_TASK =
332        profile.get("SEAM_CONVERSATION_START_TASK");
333
334    /**
335     * 'EndTask' "Ends" a jBPM task. Specifies that a long-running conversation ends
336     * when this method returns a non-null outcome, and that the current
337     * task is complete. Triggers a jBPM transition. The actual transition
338     * triggered will be the default transition unless the application has
339     * called Transition.setName() on the built-in component named
340     * transition.
341     */
342    public static final String STEREOTYPE_SEAM_CONVERSATION_END_TASK =
343        profile.get("SEAM_CONVERSATION_END_TASK");
344
345    /**
346     * 'CreateProcess' Creates a new jBPM process instance when the method returns a
347     * non-null outcome without exception. The ProcessInstance object will
348     * be available in a context variable named processInstance.
349     */
350    public static final String STEREOTYPE_SEAM_CONVERSATION_CREATE_PROCESS =
351        profile.get("SEAM_CONVERSATION_CREATE_PROCESS");
352
353    /**
354     * 'ResumeProcess' Re-enters the scope of an existing jBPM process instance when the
355     * method returns a non-null outcome without exception. The
356     * ProcessInstance object will be available in a context variable
357     * named processInstance.
358     */
359    public static final String STEREOTYPE_SEAM_CONVERSATION_RESUME_PROCESS =
360        profile.get("SEAM_CONVERSATION_RESUME_PROCESS");
361
362    /**
363     * 'Transactional' Specifies that a JavaBean component should have a similar
364     * transactional behavior to the default behavior of a session bean
365     * component. i.e. method invocations should take place in a
366     * transaction, and if no transaction exists when the method is
367     * called, a transaction will be started just for that method. This
368     * annotation may be applied at either class or method level.
369     */
370    public static final String STEREOTYPE_SEAM_TRANSACTION_TRANSACTIONAL =
371        profile.get("SEAM_TRANSACTION_TRANSACTIONAL");
372
373    /**
374     * 'Rollback' If the outcome of the method matches any of the listed outcomes,
375     * or if no outcomes are listed, set the transaction to rollback only
376     * when the method completes.
377     */
378    public static final String STEREOTYPE_SEAM_TRANSACTION_ROLLBACK =
379        profile.get("SEAM_TRANSACTION_ROLLBACK");
380
381    /**
382     * 'Valid' Specifies that the Hibernate Validator should validate this and related
383     * component attributes before an action listener Seam component method is
384     * invoked.
385     */
386    public static final String STEREOTYPE_SEAM_VALIDATION_VALID =
387        profile.get("SEAM_VALIDATION_VALID");
388
389    /**
390     * 'Validator' Specifies that the validator should validate all Seam components marked
391     * with @Valid annotation before the method is invoked. Use of
392     * tagged values for outcome when validation fails and for refreshing
393     * entities when validation fails is provided.
394     */
395    public static final String STEREOTYPE_SEAM_VALIDATION_VALIDATOR =
396        profile.get("SEAM_VALIDATION_VALIDATOR");
397
398    /**
399     * 'WebRemote' Indicates that the annotated method may be called from client-side
400     * JavaScript. The exclude property is optional and allows objects to
401     * be excluded from the result's object graph.
402     */
403    public static final String STEREOTYPE_SEAM_WEBREMOTE =
404        profile.get("SEAM_WEBREMOTE");
405
406    /**
407     * 'Interceptor' This stereotype appear on Seam interceptor classes.
408     *
409     * Please refer to the documentation for the EJB 3.0 specification
410     * for information about the annotations required for EJB interceptor
411     * definition.
412     */
413    public static final String STEREOTYPE_SEAM_INTERCEPTOR =
414        profile.get("SEAM_INTERCEPTOR");
415
416    /**
417     * 'Asynchronous' Specifies that the method call is processed asynchronously.
418     */
419    public static final String STEREOTYPE_SEAM_ASYNCHRONOUS =
420        profile.get("SEAM_ASYNCHRONOUS");
421
422    /**
423     * 'Duration' Specifies that a parameter of the asynchronous call is the duration
424     * before the call is processed (or first processed for recurring
425     * calls).
426     */
427    public static final String STEREOTYPE_SEAM_ASYNCHRONOUS_DURATION =
428        profile.get("SEAM_ASYNCHRONOUS_DURATION");
429
430    /**
431     * 'Expiration' Specifies that a parameter of the asynchronous call is the datetime
432     * at which the call is processed (or first processed for recurring
433     * calls).
434     */
435    public static final String STEREOTYPE_SEAM_ASYNCHRONOUS_EXPIRATION =
436        profile.get("SEAM_ASYNCHRONOUS_EXPIRATION");
437
438    /**
439     * 'IntervalDuration' Specifies that an asynchronous method call recurs, and that the
440     * annotated parameter is duration between recurrences.
441     */
442    public static final String STEREOTYPE_SEAM_ASYNCHRONOUS_INTERVAL_DURATION =
443        profile.get("SEAM_ASYNCHRONOUS_INTERVAL_DURATION");
444
445    /**
446     * 'DataModel' Exposes an attribute of type List, Map, Set or Object[] as a JSF
447     * DataModel into the scope of the owning component (or the EVENT
448     * scope if the owning component is STATELESS). In the case of Map,
449     * each row of the DataModel is a Map.Entry.
450     */
451    public static final String STEREOTYPE_SEAM_DATA_DATAMODEL =
452        profile.get("SEAM_DATA_DATAMODEL");
453
454    /**
455     * 'DataModelSelection' Injects the selected value from the JSF DataModel (this is the
456     * element of the underlying collection, or the map value).
457     */
458    public static final String STEREOTYPE_SEAM_DATA_DATAMODEL_SELECTION =
459        profile.get("SEAM_DATA_DATAMODEL_SELECTION");
460
461    /**
462     * 'DataModelSelectionIndex' Exposes the selection index of the JSF DataModel as an attribute
463     * of the component (this is the row number of the underlying
464     * collection, or the map key).
465     */
466    public static final String STEREOTYPE_SEAM_DATA_DATAMODEL_SELECTION_INDEX =
467        profile.get("SEAM_DATA_DATAMODEL_SELECTION_INDEX");
468
469    /* ----------------- Tagged Values -------------------- */
470
471    /**
472     * andromda_ejb_generateCMR
473     */
474    public static final String TAGGEDVALUE_GENERATE_CMR = "andromda_ejb_generateCMR";
475
476    /**
477     * 'andromda_ejb_query' The tagged value indicating the EJB query.
478     */
479    public static final String TAGGEDVALUE_EJB_QUERY =
480        profile.get("QUERY");
481
482    /**
483     * 'andromda_ejb_viewType' The tagged value indicating the view type for the
484     * class or operation.
485     */
486    public static final String TAGGEDVALUE_EJB_VIEWTYPE =
487        profile.get("VIEW_TYPE");
488
489    /**
490     * 'andromda_ejb_transaction_type' The tagged value indicating the transaction property.
491     */
492    public static final String TAGGEDVALUE_EJB_TRANSACTION_TYPE =
493        profile.get("TRANSACTION_TYPE");
494
495    /**
496     * 'andromda_ejb_transaction_management' The tagged value indicating the transaction demarcation
497     * strategy.  This only applies at the class level of a
498     * session and message-driven bean.
499     */
500    public static final String TAGGEDVALUE_EJB_TRANSACTION_MANAGEMENT =
501        profile.get("TRANSACTION_MANAGEMENT");
502
503    /**
504     * 'andromda_ejb_noSyntheticCreateMethod' The tagged value indicating whether to not allow synthetic
505     * (auto generated) create/constructors.
506     */
507    public static final String TAGGEDVALUE_EJB_NO_SYNTHETIC_CREATE_METHOD =
508        profile.get("NO_SYNTHETIC_CREATE_METHOD");
509
510    /**
511     * 'andromda_persistence_temporal_type' The tagged value indicating the temporal type specified on attributes or
512     * finder method arguments of temporal nature.
513     */
514    public static final String TAGGEDVALUE_PERSISTENCE_TEMPORAL_TYPE =
515        profile.get("TEMPORAL_TYPE");
516
517    /**
518     * 'andromda_hibernate_type' The tagged value indicating the overridden type specified on attributes or
519     * finder method arguments , to generate @org.hibernate.annotations.Type annotations.
520     */
521    public static final String TAGGEDVALUE_PERSISTENCE_OVERRIDE_TYPE =
522        profile.get("OVERRIDE_TYPE");
523
524    /**
525     * 'andromda_persistence_table' The tagged value indicating the entity table name.
526     */
527    public static final String TAGGEDVALUE_PERSISTENCE_ENTITY_TABLE_NAME =
528        profile.get("TABLE");
529
530    /**
531     * 'andromda_persistence_fetch_type' The tagged value indicating the fetch type.
532     */
533    public static final String TAGGEDVALUE_PERSISTENCE_FETCH_TYPE =
534        profile.get("FETCH_TYPE");
535
536    /**
537     * 'andromda_persistence_cascade_type' The tagged value indicating the cascade type.
538     */
539    public static final String TAGGEDVALUE_PERSISTENCE_CASCADE_TYPE =
540        profile.get("CASCADE_TYPE");
541
542    /**
543     * 'andromda_persistence_enumeration_type' The tagged value indicating the enumeration type (ORDINAL, STRING).
544     */
545    public static final String TAGGEDVALUE_PERSISTENCE_ENUMERATION_TYPE =
546        profile.get("ENUMERATION_TYPE");
547
548    /**
549     * 'andromda_persistence_generator_type' The tagged value indicating the generator type.
550     */
551    public static final String TAGGEDVALUE_PERSISTENCE_GENERATOR_TYPE =
552        profile.get("GENERATOR_TYPE");
553
554    /**
555     * 'andromda_persistence_generator_name' The tagged value indicating the generator name.
556     */
557    public static final String TAGGEDVALUE_PERSISTENCE_GENERATOR_NAME =
558        profile.get("GENERATOR_NAME");
559
560    /**
561     * 'andromda_persistence_generator_genericStrategy' The tagged value indicating the generator generic strategy.
562     */
563    public static final String TAGGEDVALUE_PERSISTENCE_GENERATOR_GENERIC_STRATEGY =
564        profile.get("GENERATOR_GENERIC_STRATEGY");
565
566    /**
567     * 'andromda_persistence_generator_source_name' The tagged value indicating the generator source name.
568     */
569    public static final String TAGGEDVALUE_PERSISTENCE_GENERATOR_SOURCE_NAME =
570        profile.get("GENERATOR_SOURCE_NAME");
571
572    /**
573     * 'andromda_persistence_generator_pkcolumn_value' The tagged value indicating the primary key column value for the generator.
574     */
575    public static final String TAGGEDVALUE_PERSISTENCE_GENERATOR_PKCOLUMN_VALUE =
576        profile.get("GENERATOR_PK_COLUMN_VALUE");
577
578    /**
579     * 'andromda_persistence_generator_initial_value' The tagged value indicating the initial value for the generator.
580     */
581    public static final String TAGGEDVALUE_PERSISTENCE_GENERATOR_INITIAL_VALUE =
582        profile.get("GENERATOR_INITIAL_VALUE");
583
584    /**
585     * 'andromda_persistence_generator_allocation_size' The tagged value indicating the step size for the generator.
586     */
587    public static final String TAGGEDVALUE_PERSISTENCE_GENERATOR_ALLOCATION_SIZE =
588        profile.get("GENERATOR_ALLOCATION_SIZE");
589
590    /**
591     * 'andromda_persistence_column_definition' The tagged value indicating the SQL definition for a column.
592     */
593    public static final String TAGGEDVALUE_PERSISTENCE_COLUMN_DEFINITION =
594        profile.get("COLUMN_DEFINITION");
595
596    /**
597     * 'andromda_persistence_column_precision' The tagged value for the precision in a float/double column.
598     */
599    public static final String TAGGEDVALUE_PERSISTENCE_COLUMN_PRECISION =
600        profile.get("COLUMN_PRECISION");
601
602    /**
603     * 'andromda_persistence_column_scale' The tagged value for the scale in a float/double column.
604     */
605    public static final String TAGGEDVALUE_PERSISTENCE_COLUMN_SCALE =
606        profile.get("COLUMN_SCALE");
607
608    /**
609     * 'andromda_persistence_column_nullable' The tagged value to represent a column that is nullable.
610     */
611    public static final String TAGGEDVALUE_PERSISTENCE_COLUMN_NULLABLE =
612        profile.get("COLUMN_NULLABLE");
613
614    /**
615     * 'andromda_persistence_column_insert' The tagged value that specifies whether a mapped column should be
616     * included in SQL INSERT statements.
617     */
618    public static final String TAGGEDVALUE_PERSISTENCE_COLUMN_INSERT =
619        profile.get("COLUMN_INSERT");
620
621    /**
622     * 'andromda_persistence_column_update' The tagged value that specifies whether a mapped column should be included
623     * in SQL UPDATE statements.
624     */
625    public static final String TAGGEDVALUE_PERSISTENCE_COLUMN_UPDATE =
626        profile.get("COLUMN_UPDATE");
627
628    /**
629     * 'andromda_persistence_orderBy' The tagged value that indicates the order by logic on the
630     * Many side of the One-to-Many and Many-to-Many relationships.
631     */
632    public static final String TAGGEDVALUE_PERSISTENCE_ORDERBY =
633        profile.get("ORDER_BY");
634
635    /**
636     * 'andromda_persistence_optional' The tagged value indicating the underlying relationship may
637     * be NULL.  If set to false, non-null relationship must always
638     * exist.
639     */
640    public static final String TAGGEDVALUE_PERSISTENCE_OPTIONAL =
641        profile.get("ATTRIBUTE_PERSISTENCE_OPTIONAL");
642
643    /**
644     * 'andromda_persistence_inheritance' Support for entity inheritance strategy with permitted values:
645     * <ul><li>SINGLE_TABLE : one table per hierarchy</li>
646     * <li>TABLE_PER_CLASS : one table per class in hierarchy</li>
647     * <li>JOINED : one table per class</li></ul>
648     * See EJB 3.0 documentation for specific details.
649     */
650    public static final String TAGGEDVALUE_PERSISTENCE_INHERITANCE =
651        profile.get("ENTITY_INHERITANCE");
652
653    /**
654     * 'andromda_persistence_discriminator_type' For the inheritance SINGLE_TABLE and JOINED strategies, the persistence
655     * provider will use a specified discriminator type column.  The supported
656     * discriminator types are:
657     * <ul><li>STRING</li><li>CHAR</li><li>INTEGER</li></ul>
658     * See the EJB 3.0 documentation for specific details.
659     */
660    public static final String TAGGEDVALUE_PERSISTENCE_DISCRIMINATOR_TYPE =
661        profile.get("ENTITY_DISCRIMINATOR_TYPE");
662
663    /**
664     * 'andromda_persistence_discriminator_value' The tagged value indicating that the row is an entity of
665     * the annotated entity type.
666     */
667    public static final String TAGGEDVALUE_PERSISTENCE_DISCRIMINATOR_VALUE =
668        profile.get("ENTITY_DISCRIMINATOR_VALUE");
669
670    /**
671     * 'andromda_persistence_discriminator_column_name'
672     * The tagged value indicating the name of the column used
673     * for the discriminator
674     */
675    public static final String TAGGEDVALUE_PERSISTENCE_DISCRIMINATOR_COLUMN =
676        profile.get("ENTITY_DISCRIMINATOR_COLUMN");
677
678    /**
679     * 'andromda_persistence_discriminator_column_definition'
680     * The tagged value representing the SQL used in generation
681     * of DDL for the discriminator column
682     */
683    public static final String TAGGEDVALUE_PERSISTENCE_DISCRIMINATOR_COLUMN_DEFINITION =
684        profile.get("ENTITY_DISCRIMINATOR_COLUMN_DEFINITION");
685
686    /**
687     * 'andromda_persistence_discriminator_column_length'
688     * The tagged value representing the column length for the
689     * String discriminator column type.
690     */
691    public static final String TAGGEDVALUE_PERSISTENCE_DISCRIMINATOR_COLUMN_LENGTH =
692        profile.get("ENTITY_DISCRIMINATOR_COLUMN_LENGTH");
693
694    /**
695     * 'andromda_service_persistence_context_unit_name'
696     * The tagged value representing the persistence context
697     * unit name (EntityManager)
698     */
699    public static final String TAGGEDVALUE_EJB_PERSISTENCE_CONTEXT_UNIT_NAME =
700        profile.get("SERVICE_PERSISTENCE_CONTEXT_UNIT_NAME");
701
702    /**
703     * 'andromda_service_persistence_context_unit_type'
704     * The tagged value representing the persistence context
705     * transaction/extended type
706     */
707    public static final String TAGGEDVALUE_EJB_PERSISTENCE_CONTEXT_TYPE =
708        profile.get("SERVICE_PERSISTENCE_CONTEXT_TYPE");
709
710    /**
711     * 'andromda_service_persistence_context_datasource'
712     * The tagged value representing the persistence context
713     * datasource JNDI name
714     */
715    public static final String TAGGEDVALUE_EJB_PERSISTENCE_CONTEXT_DATASOURCE =
716        profile.get("SERVICE_PERSISTENCE_CONTEXT_DATASOURCE");
717
718    /**
719     * 'andromda_service_persistence_flush_mode'
720     * The tagged value representing the flush mode on bean operation.
721     */
722    public static final String TAGGEDVALUE_EJB_PERSISTENCE_FLUSH_MODE =
723        profile.get("SERVICE_PERSISTENCE_FLUSH_MODE");
724
725    /**
726     * 'andromda_persistence_lob_type'
727     * The tagged value overriding the default LOB type for attribute.
728     */
729    public static final String TAGGEDVALUE_EJB_PERSISTENCE_LOB_TYPE =
730        profile.get("LOB_TYPE");
731
732    /**
733     * 'andromda_service_type'
734     * The tagged value representing the session EJB type (Stateless or Stateful)
735     */
736    public static final String TAGGEDVALUE_EJB_SESSION_TYPE =
737        profile.get("SERVICE_TYPE");
738
739    /**
740     * 'andromda_service_security_permitAll'
741     * The tagged value representing whether to permit all roles to execute
742     * operations in the bean.
743     */
744    public static final String TAGGEDVALUE_EJB_SECURITY_PERMIT_ALL =
745        profile.get("SECURITY_PERMIT_ALL");
746
747    /**
748     * 'andromda_service_security_denyAll'
749     * The tagged value representing whether to deny all roles access rights
750     * to execute operations in the bean.
751     */
752    public static final String TAGGEDVALUE_EJB_SECURITY_DENY_ALL =
753        profile.get("SECURITY_DENY_ALL");
754
755    /**
756     * 'andromda_service_security_realm'
757     * The tagged value representing the security domain to specify at
758     * the session bean class level.
759     */
760    public static final String TAGGEDVALUE_EJB_SECURITY_REALM =
761        profile.get("SECURITY_REALM");
762
763    /**
764     * 'andromda_ejb_mdb_acknowledge_mode'
765     * The tagged value representing the JMS message driven bean
766     * acknowledge mode.
767     */
768    public static final String TAGGEDVALUE_EJB_MDB_ACKNOWLEDGE_MODE =
769        profile.get("MDB_ACKNOWLEDGE_MODE");
770
771    /**
772     * 'andromda_ejb_mdb_destination'
773     * The tagged value representing the JMS message driven bean
774     * destination JNDI name.
775     */
776    public static final String TAGGEDVALUE_EJB_MDB_DESTINATION =
777        profile.get("MDB_DESTINATION");
778
779    /**
780     * 'andromda_ejb_mdb_destination_type'
781     * The tagged value representing the JMS message driven bean
782     * destination type.
783     */
784    public static final String TAGGEDVALUE_EJB_MDB_DESTINATION_TYPE =
785        profile.get("MDB_DESTINATION_TYPE");
786
787    /**
788     * 'andromda_ejb_mdb_selector'
789     * The tagged value representing the JMS message driven bean
790     * selector logic.
791     */
792    public static final String TAGGEDVALUE_EJB_MDB_SELECTOR =
793        profile.get("MDB_SELECTOR");
794
795    /**
796     * 'andromda_ejb_mdb_subscription_durability'
797     * The tagged value representing the JMS message driven bean
798     * topic subscription durability mode.
799     */
800    public static final String TAGGEDVALUE_EJB_MDB_DURABILITY =
801        profile.get("MDB_SUBSCRIPTION_DURABILITY");
802
803    /**
804     * 'andromda_service_jndi_remote'
805     * The tagged value representing the session bean remote interface
806     * JNDI name.
807     */
808    public static final String TAGGEDVALUE_EJB_SESSION_JNDI_NAME_REMOTE =
809        profile.get("SERVICE_JNDI_NAME_REMOTE");
810
811    /**
812     * 'andromda_service_jndi_local'
813     * The tagged value representing the session bean local interface
814     * JNDI name.
815     */
816    public static final String TAGGEDVALUE_EJB_SESSION_JNDI_NAME_Local =
817        profile.get("SERVICE_JNDI_NAME_LOCAL");
818
819    /**
820     * 'andromda_ejb_mdb_pool_size_min'
821     * The tagged value indicating the bean minimum pool size
822     */
823    public static final String TAGGEDVALUE_EJB_MDB_MINIMUM_POOL_SIZE =
824        profile.get("MDB_MINIMUM_POOL_SIZE");
825
826    /**
827     * 'andromda_ejb_mdb_pool_size_max'
828     * The tagged value indicating the bean maximum pool size
829     */
830    public static final String TAGGEDVALUE_EJB_MDB_MAXIMUM_POOL_SIZE =
831        profile.get("MDB_MAXIMUM_POOL_SIZE");
832
833    /**
834     * 'andromda_persistence_collection_type'
835     * Defines the association collection type
836     */
837    public static final String TAGGEDVALUE_ASSOCIATION_COLLECTION_TYPE =
838        profile.get("ASSOCIATION_COLLECTION_TYPE");
839
840    /**
841     * 'andromda_persistence_collection_index_type'
842     * Defines the index column type for ejb3 indexed collections
843     */
844    public static final String TAGGEDVALUE_ASSOCIATION_INDEX_TYPE =
845        profile.get("ASSOCIATION_INDEX_TYPE");
846
847    /**
848     * 'andromda_persistence_collection_index'
849     * Defines the index column for ejb3 indexed collections
850     */
851    public static final String TAGGEDVALUE_ASSOCIATION_INDEX =
852        profile.get("ASSOCIATION_INDEX");
853
854    /**
855     * 'andromda_service_interceptor_excludeDefault'
856     * Defines whether to exclude the default interceptors for the session operation.
857     */
858    public static final String TAGGEDVALUE_SERVICE_INTERCEPTOR_EXCLUDE_DEFAULT =
859        profile.get("EXCLUDE_DEFAULT_INTERCEPTORS");
860
861    /**
862     * 'andromda_service_interceptor_excludeClass'
863     * Defines whether to exclude the class interceptors for the session operation.
864     */
865    public static final String TAGGEDVALUE_SERVICE_INTERCEPTOR_EXCLUDE_CLASS =
866        profile.get("EXCLUDE_CLASS_INTERCEPTORS");
867
868    /**
869     * 'andromda_service_interceptor_default'
870     * Defines a default interceptor for a session or message-driven bean.
871     */
872    public static final String TAGGEDVALUE_DEFAULT_INTERCEPTOR =
873        profile.get("DEFAULT_INTERCEPTOR");
874
875    /**
876     * 'andromda_persistence_entity_cache'
877     * Defines the cache type for the Entity.
878     */
879    public static final String TAGGEDVALUE_HIBERNATE_ENTITY_CACHE =
880        profile.get("ENTITY_CACHE");
881
882    /**
883     * 'andromda_persistence_association_cache'
884     * Defines the cache type for a relationship collection.
885     */
886    public static final String TAGGEDVALUE_HIBERNATE_ASSOCIATION_CACHE =
887        profile.get("ASSOCIATION_CACHE");
888
889    /**
890     * 'andromda_persistence_associationEnd_primary'
891     * Defines the owning side of a bidirectional navigable relationship.
892     */
893    public static final String TAGGEDVALUE_PERSISTENCE_ASSOCIATION_END_PRIMARY =
894        profile.get("ASSOCIATION_END_PRIMARY");
895
896    /**
897     * 'andromda_hibernate_cascade'
898     * Defines the tagged value for hibernate cascade on an association end
899     */
900    public static final String TAGGEDVALUE_HIBERNATE_CASCADE =
901        profile.get("HIBERNATE_CASCADE_TYPE");
902
903    /**
904     * 'andromda_ejb_query_useCache'
905     * Defines whether query cache is enable for query.
906     */
907    public static final String TAGGEDVALUE_EJB_USE_QUERY_CACHE =
908        profile.get("USE_QUERY_CACHE");
909
910    /**
911     * 'andromda_webservice_parameter_style'
912     * Defines the webservice parameter style
913     */
914    public static final String TAGGEDVALUE_WEBSERVICE_PARAMETER_STYLE =
915        profile.get("WEBSERVICE_PARAMETER_STYLE");
916
917    /**
918     * 'andromda_webservice_operation_oneway'
919     * Defines the webservice method as oneway
920     */
921    public static final String TAGGEDVALUE_WEBSERVICE_OPERATION_ONEWAY =
922        profile.get("WEBSERVICE_OPERATION_ONEWAY");
923
924    /**
925     * 'andromda_webservice_operation_name'
926     * Defines the webservice method name
927     */
928    public static final String TAGGEDVALUE_WEBSERVICE_OPERATION_NAME =
929        profile.get("WEBSERVICE_OPERATION_NAME");
930
931    /**
932     * 'andromda_webservice_operation_result_name'
933     * Defines the webservice method result name
934     */
935    public static final String TAGGEDVALUE_WEBSERVICE_OPERATION_RESULT_NAME =
936        profile.get("WEBSERVICE_OPERATION_RESULT_NAME");
937
938    /**
939     * 'andromda_seam_component_name'
940     * Defines the Seam component name
941     */
942    public static final String TAGGEDVALUE_SEAM_COMPONENT_NAME =
943        profile.get("SEAM_COMPONENT_NAME");
944
945    /**
946     * 'andromda_seam_component_role_scope'
947     * Defines the JBoss Seam component scope type
948     */
949    public static final String TAGGEDVALUE_SEAM_SCOPE_TYPE =
950        profile.get("SEAM_COMPONENT_SCOPE_TYPE");
951
952    /**
953     * 'andromda_seam_component_role_name'
954     * Allows a Seam component to be bound to multiple contexts variables.
955     * The @Name/@Scope annotations define a "default role". Each @Role
956     * annotation defines an additional role.
957     *
958     * This tagged value specifies the context variable name.
959     */
960    public static final String TAGGEDVALUE_SEAM_COMPONENT_ROLE_NAME =
961        profile.get("SEAM_COMPONENT_ROLE_NAME");
962
963    /**
964     * The context variable scope. When no scope is explicitly specified,
965     * the default depends upon the component type, as above.
966     *
967     * Note! If multiple roles are specified then the list of scopes must
968     * be in the same order as the role names.
969     */
970    public static final String TAGGEDVALUE_SEAM_COMPONENT_ROLE_SCOPE_TYPE =
971        profile.get("SEAM_COMPONENT_ROLE_SCOPE_TYPE");
972
973    /**
974     * 'andromda_seam_component_intercept'
975     * Determines when Seam interceptors are active. When no interception
976     * type is explicitly specified, the default depends upon the
977     * component type. For entity beans, the default is NEVER. For session
978     * beans, message driven beans and JavaBeans, the default is ALWAYS.
979     */
980    public static final String TAGGEDVALUE_SEAM_COMPONENT_INTERCEPT =
981        profile.get("SEAM_COMPONENT_INTERCEPT");
982
983    /**
984     * 'andromda_seam_component_jndiname'
985     * Specifies the JNDI name that Seam will use to look up the EJB
986     * component. If no JNDI name is explicitly specified, Seam will use
987     * the JNDI pattern specified by org.jboss.seam.core.init.jndiPattern.
988     */
989    public static final String TAGGEDVALUE_SEAM_COMPONENT_JNDI_NAME =
990        profile.get("SEAM_COMPONENT_JNDI_NAME");
991
992    /**
993     * 'andromda_seam_component_conversional_ifnotbegunoutcome'
994     * Specifies that a conversation scope component is conversational,
995     * meaning that no method of the component can be called unless a
996     * long-running conversation started by this component is active
997     * (unless the method would begin a new long-running conversation).
998     */
999    public static final String TAGGEDVALUE_SEAM_COMPONENT_CONVERSIONAL_IFNOTBEGUNOUTCOME =
1000        profile.get("SEAM_COMPONENT_CONVERSIONAL_IFNOTBEGUNOUTCOME");
1001
1002    /**
1003     * 'andromda_seam_component_startup_depends'
1004     * named components must be started first, if they are installed.
1005     */
1006    public static final String TAGGEDVALUE_SEAM_COMPONENT_STARTUP_DEPENDS =
1007        profile.get("SEAM_COMPONENT_STARTUP_DEPENDS");
1008
1009    /**
1010     * 'andromda_seam_component_synchronized_timeout'
1011     * Specifies that a component is accessed concurrently by multiple
1012     * clients, and that Seam should serialize requests. If a request is
1013     * not able to obtain its lock on the component in the given timeout
1014     * period, an exception will be raised.
1015     */
1016    public static final String TAGGEDVALUE_SEAM_COMPONENT_SYNCHRONIZED_TIMEOUT =
1017        profile.get("SEAM_COMPONENT_SYNCHRONIZED_TIMEOUT");
1018
1019    /**
1020     * 'andromda_seam_component_readonly'
1021     * Specifies that a JavaBean component or component method does not
1022     * require state replication at the end of the invocation.
1023     */
1024    public static final String TAGGEDVALUE_SEAM_COMPONENT_READONLY =
1025        profile.get("SEAM_COMPONENT_READONLY");
1026
1027    /**
1028     * 'andromda_seam_bijection_in_create'
1029     * Specifies that Seam should instantiate the component with the same
1030     * name as the context variable if the context variable is undefined
1031     * (null) in all contexts. Default to false.
1032     */
1033    public static final String TAGGEDVALUE_SEAM_BIJECTION_IN_CREATE =
1034        profile.get("SEAM_BIJECTION_IN_CREATE");
1035
1036    /**
1037     * 'andromda_seam_bijection_in_value'
1038     * Specifies the name of the context variable. Default to the name of
1039     * the component attribute. Alternatively, specifies a JSF EL
1040     * expression, surrounded by #{...}.
1041     */
1042    public static final String TAGGEDVALUE_SEAM_BIJECTION_IN_VALUE =
1043        profile.get("SEAM_BIJECTION_IN_VALUE");
1044
1045    /**
1046     * 'andromda_seam_bijection_out_value'
1047     * Specifies the name of the context variable explicitly, instead of
1048     * using the annotated instance variable name.
1049     */
1050    public static final String TAGGEDVALUE_SEAM_BIJECTION_OUT_VALUE =
1051        profile.get("SEAM_BIJECTION_OUT_VALUE");
1052
1053    /**
1054     * 'andromda_seam_bijection_out_scope'
1055     * Specifies that a component attribute that is not a Seam component
1056     * type is to be outjected to a specific scope at the end of the
1057     * invocation.
1058     *
1059     * Alternatively, if no scope is explicitly specified, the scope of
1060     * the component with the @Out attribute is used (or the EVENT scope
1061     * if the component is stateless).
1062     */
1063    public static final String TAGGEDVALUE_SEAM_BIJECTION_OUT_SCOPE_TYPE =
1064        profile.get("SEAM_BIJECTION_OUT_SCOPE_TYPE");
1065
1066    /**
1067     * 'andromda_seam_bijection_factory_value'
1068     * Specifies the name of the context variable. If the method is a
1069     * getter method, default to the JavaBeans property name.
1070     */
1071    public static final String TAGGEDVALUE_SEAM_BIJECTION_FACTORY_VALUE =
1072        profile.get("SEAM_BIJECTION_FACTORY_VALUE");
1073
1074    /**
1075     * 'andromda_seam_bijection_factory_scope'
1076     * Specifies the scope that Seam should bind the returned value to.
1077     * Only meaningful for factory methods which return a value.
1078     */
1079    public static final String TAGGEDVALUE_SEAM_BIJECTION_FACTORY_SCOPE_TYPE =
1080        profile.get("SEAM_BIJECTION_FACTORY_SCOPE_TYPE");
1081
1082    /**
1083     * 'andromda_seam_bijection_logger_value'
1084     * Specifies the name of the log category. Default to the name of the
1085     * component class.
1086     */
1087    public static final String TAGGEDVALUE_SEAM_BIJECTION_LOGGER_VALUE =
1088        profile.get("SEAM_BIJECTION_LOGGER_VALUE");
1089
1090    /**
1091     * 'andromda_seam_bijection_requestparameter_value'
1092     * Specifies the name of the request parameter. Default to the name
1093     * of the component attribute.
1094     */
1095    public static final String TAGGEDVALUE_SEAM_BIJECTION_REQUEST_PARAMETER_VALUE =
1096        profile.get("SEAM_BIJECTION_REQUEST_PARAMETER_VALUE");
1097
1098    /**
1099     * 'andromda_seam_lifecycle_observer_event'
1100     * Specifies that the method should be called when a component-driven
1101     * event of the specified type occurs.
1102     */
1103    public static final String TAGGEDVALUE_SEAM_LIFECYCLE_OBSERVER_EVENT =
1104        profile.get("SEAM_LIFECYCLE_OBSERVER_EVENT");
1105
1106    /**
1107     * 'andromda_seam_conversation_begin_ifoutcome'
1108     * Specifies that a long-running conversation begins when this action
1109     * listener method returns with one of the given outcomes.
1110     *
1111     * Example: @Begin(ifOutcome={"success", "continue"})
1112     */
1113    public static final String TAGGEDVALUE_SEAM_CONVERSATION_BEGIN_IF_OUTCOME =
1114        profile.get("SEAM_CONVERSATION_BEGIN_IF_OUTCOME");
1115
1116    /**
1117     * 'andromda_seam_conversation_begin_join'
1118     * Specifies that if a long-running conversation is already in
1119     * progress, the conversation context is simply propagated.
1120     */
1121    public static final String TAGGEDVALUE_SEAM_CONVERSATION_BEGIN_JOIN =
1122        profile.get("SEAM_CONVERSATION_BEGIN_JOIN");
1123
1124    /**
1125     * 'andromda_seam_conversation_begin_nested'
1126     * Specifies that if a long-running conversation is already in
1127     * progress, a new nested conversation context begins. The nested
1128     * conversation will end when the next @End  is encountered, and the
1129     * outer conversation will resume. It is perfectly legal for multiple
1130     * nested conversations to exist concurrently in the same outer
1131     * conversation.
1132     */
1133    public static final String TAGGEDVALUE_SEAM_CONVERSATION_BEGIN_NESTED =
1134        profile.get("SEAM_CONVERSATION_BEGIN_NESTED");
1135
1136    /**
1137     * 'andromda_seam_conversation_begin_flushmode'
1138     * Specify the flush mode of any Seam-managed persistence contexts.
1139     * flushMode=FlushModeType.MANUAL supports the use of atomic
1140     * conversations where all write operations are queued in the
1141     * conversation context until an explicit call to flush() (which
1142     * usually occurs at the end of the conversation).
1143     */
1144    public static final String TAGGEDVALUE_SEAM_CONVERSATION_BEGIN_FLUSH_MODE =
1145        profile.get("SEAM_CONVERSATION_BEGIN_FLUSH_MODE");
1146
1147    /**
1148     * 'andromda_seam_conversation_begin_pageflow'
1149     * Specifies a jBPM process definition name that defines the pageflow
1150     * for this conversation.
1151     */
1152    public static final String TAGGEDVALUE_SEAM_CONVERSATION_BEGIN_PAGEFLOW =
1153        profile.get("SEAM_CONVERSATION_BEGIN_PAGEFLOW");
1154
1155    /**
1156     * 'andromda_seam_conversation_end_ifoutcome'
1157     * Specifies that a long-running conversation ends when this action
1158     * listener method returns with one of the given outcomes.
1159     */
1160    public static final String TAGGEDVALUE_SEAM_CONVERSATION_END_IF_OUTCOME =
1161        profile.get("SEAM_CONVERSATION_END_IF_OUTCOME");
1162
1163    /**
1164     * 'andromda_seam_conversation_end_beforeredirect'
1165     * By default, the conversation will not actually be destroyed until
1166     * after any redirect has occurred. Setting beforeRedirect=true
1167     * specifies that the conversation should be destroyed at the end of
1168     * the current request, and that the redirect will be processed in a
1169     * new temporary conversation context.
1170     */
1171    public static final String TAGGEDVALUE_SEAM_CONVERSATION_END_BEFORE_REDIRECT =
1172        profile.get("SEAM_CONVERSATION_END_BEFORE_REDIRECT");
1173
1174    /**
1175     * 'andromda_seam_conversation_end_evenifexception'
1176     * Specifies that a long-running conversation ends when this action
1177     * listener method throws one of the specified classes of exception.
1178     */
1179    public static final String TAGGEDVALUE_SEAM_CONVERSATION_END_EVEN_IF_EXCEPTION =
1180        profile.get("SEAM_CONVERSATION_END_EVEN_IF_EXCEPTION");
1181
1182    /**
1183     * 'andromda_seam_conversation_begintask_taskidparameter'
1184     * The name of a request parameter which holds the id of the task.
1185     * Default to "taskId", which is also the default used by the Seam
1186     * taskList JSF component.
1187     */
1188    public static final String TAGGEDVALUE_SEAM_CONVERSATION_START_TASK_ID_PARAMETER =
1189        profile.get("SEAM_CONVERSATION_START_TASK_ID_PARAMETER");
1190
1191    /**
1192     * 'andromda_seam_conversation_starttask_flushmode'
1193     * Set the flush mode of any Seam-managed Hibernate sessions or JPA
1194     * persistence contexts that are created during this conversation.
1195     */
1196    public static final String TAGGEDVALUE_SEAM_CONVERSATION_START_TASK_FLUSH_MODE =
1197        profile.get("SEAM_CONVERSATION_START_TASK_FLUSH_MODE");
1198
1199    /**
1200     * 'andromda_seam_conversation_begintask_taskidparameter'
1201     * The name of a request parameter which holds the id of the task.
1202     * Default to "taskId", which is also the default used by the Seam
1203     * taskList JSF component.
1204     */
1205    public static final String TAGGEDVALUE_SEAM_CONVERSATION_BEGIN_TASK_ID_PARAMETER =
1206        profile.get("SEAM_CONVERSATION_BEGIN_TASK_ID_PARAMETER");
1207
1208    /**
1209     * 'andromda_seam_conversation_begintask_flushmode'
1210     * Set the flush mode of any Seam-managed Hibernate sessions or JPA
1211     * persistence contexts that are created during this conversation.
1212     */
1213    public static final String TAGGEDVALUE_SEAM_CONVERSATION_BEGIN_TASK_FLUSH_MODE =
1214        profile.get("SEAM_CONVERSATION_BEGIN_TASK_FLUSH_MODE");
1215
1216    /**
1217     * 'andromda_seam_conversation_endtask_transition_name'
1218     * Triggers the given jBPM transition.
1219     */
1220    public static final String TAGGEDVALUE_SEAM_CONVERSATION_END_TASK_TRANSITION_NAME =
1221        profile.get("SEAM_CONVERSATION_END_TASK_TRANSITION_NAME");
1222
1223    /**
1224     * 'andromda_seam_conversation_endtask_ifoutcome'
1225     * Specifies the JSF outcome or outcomes that result in the end of
1226     * the task.
1227     */
1228    public static final String TAGGEDVALUE_SEAM_CONVERSATION_END_TASK_IF_OUTCOME =
1229        profile.get("SEAM_CONVERSATION_END_TASK_IF_OUTCOME");
1230
1231    /**
1232     * 'andromda_seam_conversation_endtask_beforeredirect'
1233     * By default, the conversation will not actually be destroyed until
1234     * after any redirect has occurred. Setting beforeRedirect=true
1235     * specifies that the conversation should be destroyed at the end of
1236     * the current request, and that the redirect will be processed in a
1237     * new temporary conversation context.
1238     */
1239    public static final String TAGGEDVALUE_SEAM_CONVERSATION_END_TASK_BEFORE_REDIRECT =
1240        profile.get("SEAM_CONVERSATION_END_TASK_BEFORE_REDIRECT");
1241
1242    /**
1243     * 'andromda_seam_conversation_createprocess_definition'
1244     * The name of the jBPM process definition deployed via
1245     * org.jboss.seam.core.jbpm.processDefinitions.
1246     */
1247    public static final String TAGGEDVALUE_SEAM_CONVERSATION_CREATE_PROCESS_DEFINITION =
1248        profile.get("SEAM_CONVERSATION_CREATE_PROCESS_DEFINITION");
1249
1250    /**
1251     * 'andromda_seam_conversation_resumeprocess_processIdParameter'
1252     * The name a request parameter holding the process id. Default to
1253     * "processId".
1254     */
1255    public static final String TAGGEDVALUE_SEAM_CONVERSATION_RESUME_PROCESS_PROCESS_ID_PARAMETER =
1256        profile.get("SEAM_CONVERSATION_RESUME_PROCESS_PROCESS_ID_PARAMETER");
1257
1258    /**
1259     * 'andromda_seam_transaction_rollback_ifoutcome'
1260     * The JSF outcomes that cause a transaction rollback (no outcomes is
1261     * interpreted to mean any outcome).
1262     */
1263    public static final String TAGGEDVALUE_SEAM_TRANSACTION_ROLLBACK_IF_OUTCOME =
1264        profile.get("SEAM_TRANSACTION_ROLLBACK_IF_OUTCOME");
1265
1266    /**
1267     * 'andromda_seam_validation_outcome'
1268     * Returns the JSF outcome when validation fails.
1269     */
1270    public static final String TAGGEDVALUE_SEAM_VALIDATION_OUTCOME =
1271        profile.get("SEAM_VALIDATION_OUTCOME");
1272
1273    /**
1274     * 'andromda_seam_validation_refreshEntities'
1275     * Specifies whether invalid entities in the managed state
1276     * should be refreshed from the database when validation fails.
1277     */
1278    public static final String TAGGEDVALUE_SEAM_VALIDATION_REFRESH_ENTITIES =
1279        profile.get("SEAM_VALIDATION_REFRESH_ENTITIES");
1280
1281    /**
1282     * 'andromda_seam_webremote_exclude'
1283     * Excludes objects from the WebRemote call result's object graph
1284     * (see the Remoting chapter in Seam doc for more details).
1285     */
1286    public static final String TAGGEDVALUE_SEAM_WEBREMOTE_EXCLUDE =
1287        profile.get("SEAM_WEBREMOTE_EXCLUDE");
1288
1289    /**
1290     * 'andromda_seam_interceptor_stateless'
1291     * Specifies that this interceptor is stateless and Seam may optimize
1292     * replication.
1293     */
1294    public static final String TAGGEDVALUE_SEAM_INTERCEPTOR_STATELESS =
1295        profile.get("SEAM_INTERCEPTOR_STATELESS");
1296
1297    /**
1298     * 'andromda_seam_interceptor_type'
1299     * Specifies that this interceptor is a "client-side" interceptor
1300     * that is called before the EJB container.
1301     */
1302    public static final String TAGGEDVALUE_SEAM_INTERCEPTOR_TYPE =
1303        profile.get("SEAM_INTERCEPTOR_TYPE");
1304
1305    /**
1306     * 'andromda_seam_interceptor_around'
1307     * Specifies that this interceptor is positioned higher in the stack
1308     * than the given interceptors.
1309     */
1310    public static final String TAGGEDVALUE_SEAM_INTERCEPTOR_AROUND =
1311        profile.get("SEAM_INTERCEPTOR_AROUND");
1312
1313    /**
1314     * 'andromda_seam_interceptor_within'
1315     * Specifies that this interceptor is positioned deeper in the stack
1316     * than the given interceptors.
1317     */
1318    public static final String TAGGEDVALUE_SEAM_INTERCEPTOR_WITHIN =
1319        profile.get("SEAM_INTERCEPTOR_WITHIN");
1320
1321    /**
1322     * 'andromda_seam_data_datamodel_value'
1323     * Name of the conversation context variable. Default to the attribute name.
1324     */
1325    public static final String TAGGEDVALUE_SEAM_DATA_DATAMODEL_VALUE =
1326        profile.get("SEAM_DATA_DATAMODEL_VALUE");
1327
1328    /**
1329     * 'andromda_seam_data_datamodel_scope'
1330     * If scope=ScopeType.PAGE is explicitly specified, the DataModel will
1331     * be kept in the PAGE context.
1332     */
1333    public static final String TAGGEDVALUE_SEAM_DATA_DATAMODEL_SCOPE_TYPE =
1334        profile.get("SEAM_DATA_DATAMODEL_SCOPE_TYPE");
1335
1336    /**
1337     * 'andromda_seam_data_datamodelselection_value'
1338     * Name of the conversation context variable. Not needed if there is
1339     * exactly one @DataModel in the component.
1340     */
1341    public static final String TAGGEDVALUE_SEAM_DATA_DATAMODEL_SELECTION_VALUE =
1342        profile.get("SEAM_DATA_DATAMODEL_SELECTION_VALUE");
1343
1344    /**
1345     * 'andromda_seam_data_datamodelselectionindex_value'
1346     * Name of the conversation context variable. Not needed if there is
1347     * exactly one @DataModel in the component.
1348     */
1349    public static final String TAGGEDVALUE_SEAM_DATA_DATAMODEL_SELECTION_INDEX_VALUE =
1350        profile.get("SEAM_DATA_DATAMODEL_SELECTION_INDEX_VALUE");
1351
1352    /**
1353     * 'andromda_seam_data_databinderclass'
1354     * This meta-annotation make it possible to implement similar
1355     * functionality to @DataModel and @DataModelSelection for other
1356     * data structures apart from lists.
1357     *
1358     * The class name of the DataModelBinder class
1359     */
1360    public static final String TAGGEDVALUE_SEAM_DATA_DATABINDER_CLASS =
1361        profile.get("SEAM_DATA_DATABINDER_CLASS");
1362
1363    /**
1364     * 'andromda_seam_data_dataselectorclass'
1365     * This meta-annotation make it possible to implement similar
1366     * functionality to @DataModel and @DataModelSelection for other
1367     * datastructures apart from lists.
1368     *
1369     * The DataModelSelector class.
1370     */
1371    public static final String TAGGEDVALUE_SEAM_DATA_DATASELECTOR_CLASS =
1372        profile.get("SEAM_DATA_DATASELECTOR_CLASS");
1373}