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 }