1
2
3
4
5 package org.andromda.metafacades.uml14;
6
7 import java.util.Collection;
8 import java.util.List;
9 import org.andromda.core.metafacade.ModelValidationMessage;
10 import org.andromda.metafacades.uml.LinkEndFacade;
11 import org.andromda.metafacades.uml.LinkFacade;
12 import org.apache.log4j.Logger;
13 import org.omg.uml.behavioralelements.commonbehavior.Link;
14
15
16
17
18
19
20
21
22
23
24 public abstract class LinkFacadeLogic
25 extends ModelElementFacadeLogicImpl
26 implements LinkFacade
27 {
28
29
30
31
32 protected Link metaObject;
33
34
35
36
37
38 protected LinkFacadeLogic(Link metaObjectIn, String context)
39 {
40 super(metaObjectIn, getContext(context));
41 this.metaObject = metaObjectIn;
42 }
43
44
45
46
47 private static final Logger logger = Logger.getLogger(LinkFacadeLogic.class);
48
49
50
51
52
53
54 private static String getContext(String context)
55 {
56 if (context == null)
57 {
58 context = "org.andromda.metafacades.uml.LinkFacade";
59 }
60 return context;
61 }
62
63
64
65
66 @Override
67 public void resetMetafacadeContext(String context)
68 {
69 if (!this.contextRoot)
70 {
71 context = getContext(context);
72 setMetafacadeContext (context);
73 }
74 }
75
76
77
78
79
80 public boolean isLinkFacadeMetaType()
81 {
82 return true;
83 }
84
85
86
87 private Collection<LinkEndFacade> __getLinkEnds1r;
88 private boolean __getLinkEnds1rSet = false;
89
90
91
92
93
94 public final Collection<LinkEndFacade> getLinkEnds()
95 {
96 Collection<LinkEndFacade> getLinkEnds1r = this.__getLinkEnds1r;
97 if (!this.__getLinkEnds1rSet)
98 {
99
100 Collection result = handleGetLinkEnds();
101 List shieldedResult = this.shieldedElements(result);
102 try
103 {
104 getLinkEnds1r = (Collection<LinkEndFacade>)shieldedResult;
105 }
106 catch (ClassCastException ex)
107 {
108
109 LinkFacadeLogic.logger.warn("incorrect metafacade cast for LinkFacadeLogic.getLinkEnds Collection<LinkEndFacade> " + result + ": " + shieldedResult);
110 }
111
112 this.__getLinkEnds1r = getLinkEnds1r;
113 if (isMetafacadePropertyCachingEnabled())
114 {
115 this.__getLinkEnds1rSet = true;
116 }
117 }
118 return getLinkEnds1r;
119 }
120
121
122
123
124
125 protected abstract Collection handleGetLinkEnds();
126
127
128
129
130
131 @Override
132 public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
133 {
134 super.validateInvariants(validationMessages);
135 }
136 }