]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.diagram/src/org/simantics/diagram/elements/AdaptableImmutableProxyElement.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.diagram / src / org / simantics / diagram / elements / AdaptableImmutableProxyElement.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
3  * in Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.diagram.elements;\r
13 \r
14 import java.util.Map;\r
15 \r
16 import org.eclipse.core.runtime.IAdaptable;\r
17 import org.simantics.g2d.diagram.IDiagram;\r
18 import org.simantics.g2d.element.ElementClass;\r
19 import org.simantics.g2d.element.ElementHints;\r
20 import org.simantics.g2d.element.ElementUtils;\r
21 import org.simantics.g2d.element.IElement;\r
22 import org.simantics.utils.datastructures.hints.IHintListener;\r
23 import org.simantics.utils.threads.IThreadWorkQueue;\r
24 \r
25 public class AdaptableImmutableProxyElement implements IAdaptable, IElement {\r
26 \r
27     private final IElement element;\r
28 \r
29     public AdaptableImmutableProxyElement(IElement element) {\r
30         this.element = element;\r
31     }\r
32 \r
33     @SuppressWarnings({ "rawtypes", "unchecked" })\r
34     @Override\r
35     public Object getAdapter(Class adapter) {\r
36         Object object = element.getHint(ElementHints.KEY_OBJECT);\r
37         if (object != null) {\r
38             if (adapter.isAssignableFrom(object.getClass()))\r
39                 return object;\r
40             if (object instanceof IAdaptable) {\r
41                 IAdaptable a = (IAdaptable) object;\r
42                 return a.getAdapter(adapter);\r
43             }\r
44         }\r
45         return null;\r
46     }\r
47 \r
48     @Override\r
49     public void addedToDiagram(IDiagram diagram) {\r
50         throw new UnsupportedOperationException();\r
51     }\r
52 \r
53     @Override\r
54     public void destroy() {\r
55         throw new UnsupportedOperationException();\r
56     }\r
57 \r
58     @Override\r
59     public void dispose() {\r
60         throw new UnsupportedOperationException();\r
61     }\r
62 \r
63     @Override\r
64     public IDiagram getDiagram() {\r
65         return ElementUtils.getDiagram(element);\r
66     }\r
67 \r
68     @Override\r
69     public IDiagram peekDiagram() {\r
70         return ElementUtils.peekDiagram(element);\r
71     }\r
72 \r
73     @Override\r
74     public ElementClass getElementClass() {\r
75         return element.getElementClass();\r
76     }\r
77 \r
78     @Override\r
79     public void clearWithoutNotification() {\r
80         throw new UnsupportedOperationException();\r
81     }\r
82 \r
83     @Override\r
84     public <E> E removeHint(Key key) {\r
85         throw new UnsupportedOperationException();\r
86     }\r
87 \r
88     @Override\r
89     public void setHint(Key key, Object value) {\r
90         throw new UnsupportedOperationException();\r
91     }\r
92 \r
93     @Override\r
94     public void setHints(Map<Key, Object> hints) {\r
95         throw new UnsupportedOperationException();\r
96     }\r
97 \r
98     @Override\r
99     public void addHintListener(IHintListener listener) {\r
100         throw new UnsupportedOperationException();\r
101     }\r
102 \r
103     @Override\r
104     public void addHintListener(IThreadWorkQueue threadAccess, IHintListener listener) {\r
105         throw new UnsupportedOperationException();\r
106     }\r
107 \r
108     @Override\r
109     public void addKeyHintListener(Key key, IHintListener listener) {\r
110         throw new UnsupportedOperationException();\r
111     }\r
112 \r
113     @Override\r
114     public void addKeyHintListener(IThreadWorkQueue threadAccess, Key key, IHintListener listener) {\r
115         throw new UnsupportedOperationException();\r
116     }\r
117 \r
118     @Override\r
119     public boolean containsHint(Key key) {\r
120         return element.containsHint(key);\r
121     }\r
122 \r
123     @Override\r
124     public <E> E getHint(Key key) {\r
125         return element.getHint(key);\r
126     }\r
127 \r
128     @Override\r
129     public Map<Key, Object> getHints() {\r
130         return element.getHints();\r
131     }\r
132 \r
133     @Override\r
134     public Map<Key, Object> getHintsUnsafe() {\r
135         return element.getHintsUnsafe();\r
136     }\r
137 \r
138     @Override\r
139     public <E extends Key> Map<E, Object> getHintsOfClass(Class<E> clazz) {\r
140         return element.getHintsOfClass(clazz);\r
141     }\r
142 \r
143     @Override\r
144     public void removeHintListener(IHintListener listener) {\r
145         throw new UnsupportedOperationException();\r
146     }\r
147 \r
148     @Override\r
149     public void removeHintListener(IThreadWorkQueue threadAccess, IHintListener listener) {\r
150         throw new UnsupportedOperationException();\r
151     }\r
152 \r
153     @Override\r
154     public void removeKeyHintListener(Key key, IHintListener listener) {\r
155         throw new UnsupportedOperationException();\r
156     }\r
157 \r
158     @Override\r
159     public void removeKeyHintListener(IThreadWorkQueue threadAccess, Key key, IHintListener listener) {\r
160         throw new UnsupportedOperationException();\r
161     }\r
162 \r
163 }\r