View Javadoc
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 }