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 }