1
2
3
4 package org.andromda.metafacades.uml;
5
6 /***
7 *
8 *
9 * Metafacade interface to be used by AndroMDA cartridges.
10 */
11 public interface ModelFacade
12 {
13
14 /***
15 * Indicates the metafacade type (used for metafacade mappings).
16 *
17 * @return always <code>true</code>
18 */
19 public boolean isModelFacadeMetaType();
20
21 /***
22 * Provides any required initialization of the metafacade.
23 */
24 void initialize();
25
26 /***
27 * Gets the metafacade that acts as the <code>owner</code> of this metafacade.
28 * (for example: an operation is an owner of its parameters, etc). This is used
29 * by AndroMDA's validation framework to provide more context as to where the
30 * error has occurred.
31 */
32 public Object getValidationOwner();
33
34 /***
35 * Gets the name of the metafacade used within validation messages. This provides
36 * the full name of the metafacade.
37 */
38 public String getValidationName();
39
40 /***
41 * Performs validation of any invariants found on this model element
42 * and stores the messages within the <code>validationMessages</code>
43 * collection.
44 *
45 * @param validationMessages the collection of messages to which additional
46 * validation messages will be added if invariants are broken.
47 */
48 void validateInvariants(java.util.Collection validationMessages);
49
50
51 /***
52 *
53 */
54 public org.andromda.metafacades.uml.ActivityGraphFacade findActivityGraphByName(java.lang.String name);
55
56 /***
57 *
58 */
59 public org.andromda.metafacades.uml.ActivityGraphFacade findActivityGraphByNameAndStereotype(java.lang.String name, java.lang.String stereotypeName);
60
61 /***
62 *
63 */
64 public org.andromda.metafacades.uml.ClassifierFacade findClassWithTaggedValueOrHyperlink(java.lang.String tag, java.lang.String value);
65
66 /***
67 *
68 */
69 public java.util.Collection findFinalStatesWithNameOrHyperlink(org.andromda.metafacades.uml.UseCaseFacade useCase);
70
71 /***
72 *
73 */
74 public org.andromda.metafacades.uml.UseCaseFacade findUseCaseByName(java.lang.String name);
75
76 /***
77 *
78 */
79 public org.andromda.metafacades.uml.UseCaseFacade findUseCaseWithNameAndStereotype(java.lang.String name, java.lang.String stereotypeName);
80
81 /***
82 *
83 */
84 public org.andromda.metafacades.uml.UseCaseFacade findUseCaseWithTaggedValueOrHyperlink(java.lang.String tag, java.lang.String value);
85
86 /***
87 *
88 */
89 public java.util.Collection getAllActionStates();
90
91 /***
92 *
93 */
94 public java.util.Collection getAllActionStatesWithStereotype(org.andromda.metafacades.uml.ActivityGraphFacade activityGraph, java.lang.String stereotypeName);
95
96 /***
97 *
98 */
99 public java.util.Collection getAllActors();
100
101 /***
102 *
103 */
104 public java.util.Collection getAllClasses();
105
106 /***
107 * <p>
108 * All object flow states in this model.
109 * </p>
110 */
111 public java.util.Collection getAllObjectFlowStates();
112
113 /***
114 *
115 */
116 public java.util.Collection getAllUseCases();
117
118 /***
119 *
120 */
121 public org.andromda.metafacades.uml.PackageFacade getRootPackage();
122
123 }