1 // license-header java merge-point 2 // 3 // Attention: generated code (by Metafacade.vsl) - do not modify! 4 // 5 package org.andromda.metafacades.uml; 6 7 import java.util.Collection; 8 import org.andromda.core.metafacade.ModelValidationMessage; 9 10 /** 11 * Captures a view of a physical system. It is an abstraction of the physical system, with a certain 12 * purpose. This purpose determines what is to be included in the model and what is irrelevant. Thus 13 * the model completely describes those aspects of the physical system that are relevant to the 14 * purpose of the model, at the appropriate level of detail. May be a UML2 model or package. 15 * 16 * Metafacade interface to be used by AndroMDA cartridges. 17 */ 18 public interface ModelFacade 19 { 20 /** 21 * Indicates the metafacade type (used for metafacade mappings). 22 * 23 * @return boolean always <code>true</code> 24 */ 25 public boolean isModelFacadeMetaType(); 26 27 /** 28 * Provides any required initialization of the metafacade. 29 */ 30 void initialize(); 31 32 /** 33 * Gets the metafacade that acts as the <code>owner</code> of this metafacade. 34 * (for example: an operation is an owner of its parameters, etc). This is used 35 * by AndroMDA's validation framework to provide more context as to where the 36 * error has occurred. 37 * @return Object the Validation Owner 38 */ 39 public Object getValidationOwner(); 40 41 /** 42 * Gets the name of the metafacade used within validation messages. This provides 43 * the full name of the metafacade. 44 * @return String the Validation Name 45 */ 46 public String getValidationName(); 47 48 /** 49 * Performs validation of any invariants found on this model element 50 * and stores the messages within the <code>validationMessages</code> 51 * collection. 52 * 53 * @param validationMessages the collection of messages to which additional 54 * validation messages will be added if invariants are broken. 55 */ 56 void validateInvariants(Collection<ModelValidationMessage> validationMessages); 57 58 /** 59 * Finds the ActivityGraph with the Name. 60 * @param name String 61 * @return ActivityGraphFacade 62 */ 63 public ActivityGraphFacade findActivityGraphByName(String name); 64 65 /** 66 * Finds the ActivityGraph with the Name and Stereotype. 67 * @param name String 68 * @param stereotypeName String 69 * @return ActivityGraphFacade 70 */ 71 public ActivityGraphFacade findActivityGraphByNameAndStereotype(String name, String stereotypeName); 72 73 /** 74 * Return the Class belonging to this model with the tagged value or hyperlink. 75 * @param tag String 76 * @param value String 77 * @return ClassifierFacade 78 */ 79 public ClassifierFacade findClassWithTaggedValueOrHyperlink(String tag, String value); 80 81 /** 82 * Finds the FinalState with the Name or Hyperlink. 83 * @param useCase UseCaseFacade 84 * @return Collection<FinalStateFacade> 85 */ 86 public Collection<FinalStateFacade> findFinalStatesWithNameOrHyperlink(UseCaseFacade useCase); 87 88 /** 89 * Finds the UseCase with the Name. 90 * @param name String 91 * @return UseCaseFacade 92 */ 93 public UseCaseFacade findUseCaseByName(String name); 94 95 /** 96 * Finds the UseGraph with the Name and Stereotype. 97 * @param name String 98 * @param stereotypeName String 99 * @return UseCaseFacade 100 */ 101 public UseCaseFacade findUseCaseWithNameAndStereotype(String name, String stereotypeName); 102 103 /** 104 * Return the UseCase belonging to this model with the tagged value or hyperlink. 105 * @param tag String 106 * @param value String 107 * @return UseCaseFacade 108 */ 109 public UseCaseFacade findUseCaseWithTaggedValueOrHyperlink(String tag, String value); 110 111 /** 112 * Return all ActionStates belonging to this model. 113 * @return Collection<ActionStateFacade> 114 */ 115 public Collection<ActionStateFacade> getAllActionStates(); 116 117 /** 118 * Finds all ActionStates with the Stereotype. 119 * @param activityGraph ActivityGraphFacade 120 * @param stereotypeName String 121 * @return Collection<ActionStateFacade> 122 */ 123 public Collection<ActionStateFacade> getAllActionStatesWithStereotype(ActivityGraphFacade activityGraph, String stereotypeName); 124 125 /** 126 * Return all Actors belonging to this model. 127 * @return Collection<ActorFacade> 128 */ 129 public Collection<ActorFacade> getAllActors(); 130 131 /** 132 * Return all Classes and Datatypes belonging to this model. 133 * @return Collection<ClassifierFacade> 134 */ 135 public Collection<ClassifierFacade> getAllClasses(); 136 137 /** 138 * All object flow states in this model. 139 * @return Collection<ObjectFlowStateFacade> 140 */ 141 public Collection<ObjectFlowStateFacade> getAllObjectFlowStates(); 142 143 /** 144 * All transitions present in the activity graphs contained by this model. 145 * @return Collection<TransitionFacade> 146 */ 147 public Collection<TransitionFacade> getAllTransitions(); 148 149 /** 150 * Return all UseCases belonging to this model. 151 * @return Collection<UseCaseFacade> 152 */ 153 public Collection<UseCaseFacade> getAllUseCases(); 154 155 /** 156 * Return the root package belonging to this model. In UML2, the top level element may be either 157 * a package or a model. 158 * @return PackageFacade 159 */ 160 public PackageFacade getRootPackage(); 161 }