1
2
3
4 package org.andromda.cartridges.meta.metafacades;
5
6 /***
7 * <p>
8 * Facade for use in the andromda-meta cartridge. It hides a
9 * Classifier that represents a <<metafacade>> object.
10 * </p>
11 *
12 * Metafacade interface to be used by AndroMDA cartridges.
13 */
14 public interface Metafacade
15 extends org.andromda.metafacades.uml.ClassifierFacade
16 {
17
18 /***
19 * Indicates the metafacade type (used for metafacade mappings).
20 *
21 * @return always <code>true</code>
22 */
23 public boolean isMetafacadeMetaType();
24
25 /***
26 * <p>
27 * All generalization links (including all parents)
28 * </p>
29 */
30 public java.util.Collection getAllParents();
31
32 /***
33 * <p>
34 * The fully qualified name for the implementation of the
35 * metafacade.
36 * </p>
37 */
38 public java.lang.String getFullyQualifiedLogicImplName();
39
40 /***
41 * <p>
42 * The fully qualified name for the metafacade "Logic" class.
43 * </p>
44 */
45 public java.lang.String getFullyQualifiedLogicName();
46
47 /***
48 * <p>
49 * The number of parents this metafacade has.
50 * </p>
51 */
52 public int getGeneralizationCount();
53
54 /***
55 * <p>
56 * The 'Logic' file location.
57 * </p>
58 */
59 public java.lang.String getLogicFile();
60
61 /***
62 * <p>
63 * The 'Logic' implementation file location.
64 * </p>
65 */
66 public java.lang.String getLogicImplFile();
67
68 /***
69 * <p>
70 * The name of the 'Logic' implementation name.
71 * </p>
72 */
73 public java.lang.String getLogicImplName();
74
75 /***
76 * <p>
77 * The name of the metafacade 'Logic' class.
78 * </p>
79 */
80 public java.lang.String getLogicName();
81
82 /***
83 * <p>
84 * The package name to which the 'Logic' metafacade classes are
85 * generated.
86 * </p>
87 */
88 public java.lang.String getLogicPackageName();
89
90 /***
91 *
92 */
93 public org.andromda.metafacades.uml.ClassifierFacade getMetaclass();
94
95 /***
96 * <p>
97 * Gets all inherited method information as a collection of
98 * MethodData instances for the given superMetafacade.
99 * </p>
100 */
101 public java.util.Collection getMethodDataForPSM(org.andromda.metafacades.uml.ClassifierFacade superMetafacade);
102
103 /***
104 * <p>
105 * Gets all method information as a collection of MethodData
106 * instances for the metafacade.
107 * </p>
108 */
109 public java.util.Collection getMethodDataForPSM();
110
111 /***
112 * <p>
113 * Indicates if the meta class construct argument requires a cast
114 * to the super metafacade's metaclass.
115 * </p>
116 */
117 public boolean isConstructorRequiresMetaclassCast();
118
119 /***
120 * <p>
121 * True/false depending on whether or not this class's metaclass is
122 * a direct dependency (true) or an inherited dependency (false).
123 * </p>
124 */
125 public boolean isMetaclassDirectDependency();
126
127 /***
128 * <p>
129 * Indicates if the metafacade requires a delegate for inheritance
130 * instead of actual inheritance. This is true, when the
131 * metafacade is inheriting from a metafacade from a different
132 * package (since that means it will most likely be a cartridge
133 * metafacade inheriting from a set of shared metafacades for a
134 * meta model).
135 * </p>
136 */
137 public boolean isRequiresInheritanceDelegatation();
138
139 }