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