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 9 /** 10 * The model element that represents an element that can be generalized or specialized. 11 * 12 * Metafacade interface to be used by AndroMDA cartridges. 13 */ 14 public interface GeneralizableElementFacade 15 extends ModelElementFacade 16 { 17 /** 18 * Indicates the metafacade type (used for metafacade mappings). 19 * 20 * @return boolean always <code>true</code> 21 */ 22 public boolean isGeneralizableElementFacadeMetaType(); 23 24 /** 25 * Finds the tagged value optional searching the entire inheritance hierarchy if 'follow' is set 26 * to true. 27 * @param tagName String 28 * @param follow boolean 29 * @return Object 30 */ 31 public Object findTaggedValue(String tagName, boolean follow); 32 33 /** 34 * All generalizations for this generalizable element, goes up the inheritance tree. 35 * @return Collection<GeneralizableElementFacade> 36 */ 37 public Collection<GeneralizableElementFacade> getAllGeneralizations(); 38 39 /** 40 * All specializations (travels down the inheritance hierarchy). 41 * @return Collection<GeneralizableElementFacade> 42 */ 43 public Collection<GeneralizableElementFacade> getAllSpecializations(); 44 45 /** 46 * Gets the direct generalization for this generalizable element. 47 * @return GeneralizableElementFacade 48 */ 49 public GeneralizableElementFacade getGeneralization(); 50 51 /** 52 * Gets the actual links that this generalization element is part of (it plays either the 53 * specialization or generalization). 54 * @return Collection<GeneralizationFacade> 55 */ 56 public Collection<GeneralizationFacade> getGeneralizationLinks(); 57 58 /** 59 * A comma separated list of the fully qualified names of all generalizations. 60 * @return String 61 */ 62 public String getGeneralizationList(); 63 64 /** 65 * The element found when you recursively follow the generalization path up to the root. If an 66 * element has no generalization itself will be considered the root. 67 * @return GeneralizableElementFacade 68 */ 69 public GeneralizableElementFacade getGeneralizationRoot(); 70 71 /** 72 * Return all generalizations (ancestors) from this generalizable element. 73 * @return Collection<GeneralizableElementFacade> 74 */ 75 public Collection<GeneralizableElementFacade> getGeneralizations(); 76 77 /** 78 * Gets the direct specializations (i.e. sub elements) for this generalizatble element. 79 * @return Collection<GeneralizableElementFacade> 80 */ 81 public Collection<GeneralizableElementFacade> getSpecializations(); 82 }