001package org.andromda.metafacades.uml;
002
003/**
004 * Stores the metafacade namespace properties used throughout the UML metafacades.
005 *
006 * @author Chad Brandon
007 * @author Bob Fields
008 */
009public class UMLMetafacadeProperties
010{
011    /**
012     * Stores the property containing the URI to the language mappings file.
013     */
014    public static final String LANGUAGE_MAPPINGS_URI = "languageMappingsUri";
015
016    /**
017     * This property controls whether or not to produce templating parameters
018     * where possible.
019     */
020    public static final String ENABLE_TEMPLATING = "enableTemplating";
021
022    /**
023     * Stores the property defining the default schema name for entity tables.
024     */
025    public static final String SCHEMA_NAME = "schemaName";
026
027    /**
028     * Stores the property defining the prefix for entity table names.
029     */
030    public static final String TABLE_NAME_PREFIX = "tableNamePrefix";
031
032    /**
033     * Stores the property defining the prefix for entity table column names.
034     */
035    public static final String COLUMN_NAME_PREFIX = "columnNamePrefix";
036
037    /**
038     * Stores the property defining the suffix for entity table column names.
039     */
040    public static final String COLUMN_NAME_SUFFIX = "columnNameSuffix";
041
042    /**
043     * Stores the property containing the URI to the SQL mappings file.
044     */
045    public static final String SQL_MAPPINGS_URI = "sqlMappingsUri";
046
047    /**
048     * Stores the property containing the URI to the JDBC mappings file.
049     */
050    public static final String JDBC_MAPPINGS_URI = "jdbcMappingsUri";
051
052    /**
053     * Stores the property containing the URI to the Wrapper mappings file.
054     */
055    public static final String WRAPPER_MAPPINGS_URI = "wrapperMappingsUri";
056
057    /**
058     * Allows the pluralization of association end names (when the multiplicity is greater than one) to be turned
059     * on/off.
060     */
061    public static final String PLURALIZE_ASSOCIATION_END_NAMES = "pluralizeAssociationEndNames";
062
063    /**
064     * Allows the pluralization of operation parameter names (when the multiplicity is greater than one) to be turned
065     * on/off.
066     */
067    public static final String PLURALIZE_ATTRIBUTE_NAMES = "pluralizeAttributeNames";
068
069    /**
070     * Allows the pluralization of attribute names (when the multiplicity is greater than one) to be turned
071     * on/off.
072     */
073    public static final String PLURALIZE_PARAMETER_NAMES = "pluralizeParameterNames";
074
075    /**
076     * The default suffix to use for foreign keys.
077     */
078    public static final String FOREIGN_KEY_SUFFIX = "foreignKeySuffix";
079
080    /**
081     * The default suffix to use for foreign keys.
082     */
083    public static final String CONSTRAINT_SUFFIX = "constraintSuffix";
084
085    /**
086     * The mask to apply to role names
087     * @see NameMasker#mask(String, String)
088     */
089    public static final String ROLE_NAME_MASK = "roleNameMask";
090
091    /**
092     * The mask to apply to any model element names
093     * @see NameMasker#mask(String, String)
094     */
095    public static final String MODEL_ELEMENT_NAME_MASK = "modelElementNameMask";
096    
097    /**
098     * The mask to apply to any classifier names
099     * @see NameMasker#mask(String, String)
100     */
101    public static final String CLASSIFIER_NAME_MASK = "classifierNameMask";
102
103    /**
104     * The mask to apply to any of the classifier property names
105     * @see NameMasker#mask(String, String)
106     */
107    public static final String CLASSIFIER_PROPERTY_NAME_MASK = "classifierPropertyNameMask";
108
109    /**
110     * The mask to apply to any operation names
111     * @see NameMasker#mask(String, String)
112     */
113    public static final String OPERATION_NAME_MASK = "operationNameMask";
114
115    /**
116     * The mask to apply to any parameter names
117     * @see NameMasker#mask(String, String)
118     */
119    public static final String PARAMETER_NAME_MASK = "parameterNameMask";
120
121    /**
122     * The mask to apply to enumeration literal names
123     * @see NameMasker#mask(String, String)
124     */
125    public static final String ENUMERATION_LITERAL_NAME_MASK = "enumerationLiteralNameMask";
126
127    /**
128     * The mask to apply to the enumeration literal name
129     * @see NameMasker#mask(String, String)
130     */
131    public static final String ENUMERATION_NAME_MASK = "enumerationNameMask";
132
133    /**
134     * The mask to apply to the entity name
135     * @see NameMasker#mask(String, String)
136     */
137    public static final String ENTITY_NAME_MASK = "entityNameMask";
138
139    /**
140     * The mask to apply to the entity property (attributes and association) names
141     * @see NameMasker#mask(String, String)
142     */
143    public static final String ENTITY_PROPERTY_NAME_MASK = "entityPropertyNameMask";
144
145    /**
146     * The maximum length a SQL name can be before its truncated.
147     */
148    public static final String MAX_SQL_NAME_LENGTH = "maxSqlNameLength";
149
150    /**
151     * The method to be used to ensure name length. 
152     * Supported values: truncate or removeVowels. Default = truncate
153     */
154    public static final String SHORTEN_SQL_NAMES_METHOD = "shortenSqlNamesMethod";
155    public static final String SHORTEN_SQL_NAMES_METHOD_TRUNCATE = "truncate";
156    public static final String SHORTEN_SQL_NAMES_METHOD_REMOVE_VOWELS = "removeVowels";
157
158    /**
159     * Whether or not to allow default identifiers for modeled entities.
160     */
161    public static final String ALLOW_DEFAULT_IDENTITIFIERS = "allowDefaultIdentifiers";
162
163    /**
164     * The pattern used to construct the name entity default identifiers (if enabled).
165     */
166    public static final String DEFAULT_IDENTIFIER_PATTERN = "defaultIdentifierPattern";
167
168    /**
169     * The type to given default identifiers.
170     */
171    public static final String DEFAULT_IDENTIFIER_TYPE = "defaultIdentifierType";
172
173    /**
174     * The visibility to apply to default identifiers.
175     */
176    public static final String DEFAULT_IDENTIFIER_VISIBILITY = "defaultIdentifierVisibility";
177
178    /**
179     * The suffix to add to the composite identifier type name.
180     */
181    public static final String COMPOSITE_IDENTIFIER_TYPE_NAME_SUFIX = "compositeIdentifierTypeNameSuffix";
182
183    /**
184     * The suffix to add to the composite identifier name.
185     */
186    public static final String COMPOSITE_IDENTIFIER_NAME_SUFIX = "compositeIdentifierNameSuffix";
187
188    /**
189     * Are manageable tables resolved by default when referenced ?
190     */
191    public static final String PROPERTY_DEFAULT_RESOLVEABLE = "defaultResolveable";
192
193    /**
194     * Stores the default upper limit for lists.
195     */
196    public static final String PROPERTY_DEFAULT_MAX_LIST_SIZE = "defaultMaximumListSize";
197
198    /**
199     * Stores the default number of records shown per page.
200     */
201    public static final String PROPERTY_DEFAULT_PAGE_SIZE = "defaultPageSize";
202
203    /**
204     * The separator used for packages and element names when constructing fully qualified names.
205     */
206    public static final String NAMESPACE_SEPARATOR = "namespaceSeparator";
207
208    /**
209     * The name given to model elements without a name.
210     */
211    public static final String UNDEFINED_NAME = "undefinedName";
212
213    /**
214     * Stores the suffix given to array type names.
215     */
216    public static final String ARRAY_NAME_SUFFIX = "arrayNameSuffix";
217
218    /**
219     * Whether or not to enable manageable entities for the currently running cartridge.
220     */
221    public static final String ENABLE_MANAGEABLE_ENTITIES = "enableManageableEntities";
222
223    /**
224     * The namespace property used to denote the name of the subpackage create for
225     * manageable entities.
226     */
227    public static final String MANAGEABLE_PACKAGE_NAME_SUFFIX = "manageablePackageSuffix";
228
229    /**
230     * Stores the boolean flag indicating whether or not we should use arrays instead of collections with associations
231     * of type many (where appropriate).
232     */
233    public static final String USE_ARRAYS_FOR_MULTIPLICITIES_OF_TYPE_MANY = "useArraysForMultiplicitiesOfTypeMany";
234
235    /**
236     * The separator for relation names between associations.
237     */
238    public static final String RELATION_NAME_SEPARATOR = "relationNameSeparator";
239
240    /**
241     * The separator to use when constructing SQL names.
242     */
243    public static final String SQL_NAME_SEPARATOR = "sqlNameSeparator";
244
245    /**
246     * The pattern used for constructing operations that handle precondition constraints.
247     */
248    public static final String PRECONDITION_NAME_PATTERN = "preconditionNamePattern";
249
250    /**
251     * The pattern used for constructing operations that handle postcondition constraints.
252     */
253    public static final String POSTCONDITION_NAME_PATTERN = "postconditionNamePattern";
254
255    /**
256     * The namespace property used to identify the pattern used to construct the backend CRUD service's accessor.
257     */
258    public static final String MANAGEABLE_SERVICE_ACCESSOR_PATTERN = "manageableServiceAccessorPattern";
259
260    /**
261     * The namespace property used to define the default multiplicity of
262     * an attribute or association end (when one isn't modeled).
263     */
264    public static final String DEFAULT_MULTIPLICITY = "defaultMultiplicity";
265
266    /**
267     * Denotes whether or not the id needs to be displayed when managing an entity, or whether this
268     * should be transparent for the user.
269     */
270    public static final String MANAGEABLE_ID_DISPLAY_STRATEGY = "manageableIdDisplayStrategy";
271
272    /**
273     * Indicates whether enumerations must be generated using a Java 5 type-safe enum or a
274     * traditional enumeration-pattern class.
275     */
276    public static final String TYPE_SAFE_ENUMS_ENABLED = "typeSafeEnumsEnabled";
277
278    /**
279     * Value indicating work to do in source code. Default=TODO
280     */
281    public static final String TODO_TAG = "toDoTag";
282
283    /**
284     * Value indicating missing documentation in model elements. Default=false, do not insert todo tags.
285     */
286    public static final String TODO_FOR_MISSING_DOCUMENTATION = "toDoForMissingDocumentation";
287}