1 // license-header java merge-point
2 //
3 // Attention: generated code (by Metafacade.vsl) - do not modify!
4 //
5 package org.andromda.metafacades.uml;
6
7 import java.util.Collection;
8 import org.andromda.core.metafacade.ModelValidationMessage;
9
10 /**
11 * Represents the model object 'Template Parameter Substitution'. Relates the actual parameter(s) to
12 * a formal template parameter as part of a template binding.
13 *
14 * Metafacade interface to be used by AndroMDA cartridges.
15 */
16 public interface TemplateArgumentFacade
17 {
18 /**
19 * Indicates the metafacade type (used for metafacade mappings).
20 *
21 * @return boolean always <code>true</code>
22 */
23 public boolean isTemplateArgumentFacadeMetaType();
24
25 /**
26 * Provides any required initialization of the metafacade.
27 */
28 void initialize();
29
30 /**
31 * Gets the metafacade that acts as the <code>owner</code> of this metafacade.
32 * (for example: an operation is an owner of its parameters, etc). This is used
33 * by AndroMDA's validation framework to provide more context as to where the
34 * error has occurred.
35 * @return Object the Validation Owner
36 */
37 public Object getValidationOwner();
38
39 /**
40 * Gets the name of the metafacade used within validation messages. This provides
41 * the full name of the metafacade.
42 * @return String the Validation Name
43 */
44 public String getValidationName();
45
46 /**
47 * Performs validation of any invariants found on this model element
48 * and stores the messages within the <code>validationMessages</code>
49 * collection.
50 *
51 * @param validationMessages the collection of messages to which additional
52 * validation messages will be added if invariants are broken.
53 */
54 void validateInvariants(Collection<ModelValidationMessage> validationMessages);
55
56 /**
57 * Represents a model element. It may be an Element or NamedElement. A named element is an
58 * element in a
59 * model that may have a name. An element is a constituent of a model. As such, it has the
60 * capability
61 * of owning other elements.
62 * @return ModelElementFacade
63 */
64 public ModelElementFacade getElement();
65 }