001// license-header java merge-point 002// 003// Attention: generated code (by Metafacade.vsl) - do not modify! 004// 005package org.andromda.metafacades.uml; 006 007import java.util.Collection; 008 009/** 010 * The model element that represents an element that can be generalized or specialized. 011 * 012 * Metafacade interface to be used by AndroMDA cartridges. 013 */ 014public interface GeneralizableElementFacade 015 extends ModelElementFacade 016{ 017 /** 018 * Indicates the metafacade type (used for metafacade mappings). 019 * 020 * @return boolean always <code>true</code> 021 */ 022 public boolean isGeneralizableElementFacadeMetaType(); 023 024 /** 025 * Finds the tagged value optional searching the entire inheritance hierarchy if 'follow' is set 026 * to true. 027 * @param tagName String 028 * @param follow boolean 029 * @return Object 030 */ 031 public Object findTaggedValue(String tagName, boolean follow); 032 033 /** 034 * All generalizations for this generalizable element, goes up the inheritance tree. 035 * @return Collection<GeneralizableElementFacade> 036 */ 037 public Collection<GeneralizableElementFacade> getAllGeneralizations(); 038 039 /** 040 * All specializations (travels down the inheritance hierarchy). 041 * @return Collection<GeneralizableElementFacade> 042 */ 043 public Collection<GeneralizableElementFacade> getAllSpecializations(); 044 045 /** 046 * Gets the direct generalization for this generalizable element. 047 * @return GeneralizableElementFacade 048 */ 049 public GeneralizableElementFacade getGeneralization(); 050 051 /** 052 * Gets the actual links that this generalization element is part of (it plays either the 053 * specialization or generalization). 054 * @return Collection<GeneralizationFacade> 055 */ 056 public Collection<GeneralizationFacade> getGeneralizationLinks(); 057 058 /** 059 * A comma separated list of the fully qualified names of all generalizations. 060 * @return String 061 */ 062 public String getGeneralizationList(); 063 064 /** 065 * The element found when you recursively follow the generalization path up to the root. If an 066 * element has no generalization itself will be considered the root. 067 * @return GeneralizableElementFacade 068 */ 069 public GeneralizableElementFacade getGeneralizationRoot(); 070 071 /** 072 * Return all generalizations (ancestors) from this generalizable element. 073 * @return Collection<GeneralizableElementFacade> 074 */ 075 public Collection<GeneralizableElementFacade> getGeneralizations(); 076 077 /** 078 * Gets the direct specializations (i.e. sub elements) for this generalizatble element. 079 * @return Collection<GeneralizableElementFacade> 080 */ 081 public Collection<GeneralizableElementFacade> getSpecializations(); 082}