Skip to content

Package: DataTemplateItemProviderAdapterFactory

DataTemplateItemProviderAdapterFactory

nameinstructionbranchcomplexitylinemethod
DataTemplateItemProviderAdapterFactory()
M: 0 C: 45
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
adapt(Notifier, Object)
M: 0 C: 5
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
adapt(Object, Object)
M: 21 C: 0
0%
M: 6 C: 0
0%
M: 4 C: 0
0%
M: 5 C: 0
0%
M: 1 C: 0
0%
addListener(INotifyChangedListener)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
createTemplateAdapter()
M: 0 C: 12
100%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 0 C: 3
100%
M: 0 C: 1
100%
createTemplateCollectionAdapter()
M: 12 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
dispose()
M: 13 C: 0
0%
M: 4 C: 0
0%
M: 3 C: 0
0%
M: 5 C: 0
0%
M: 1 C: 0
0%
fireNotifyChanged(Notification)
M: 12 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
getChildCreationExtenders()
M: 4 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getNewChildDescriptors(Object, EditingDomain)
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getResourceLocator()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
getRootAdapterFactory()
M: 9 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
isFactoryForType(Object)
M: 0 C: 13
100%
M: 0 C: 4
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
removeListener(INotifyChangedListener)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
setParentAdapterFactory(ComposedAdapterFactory)
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%

Coverage

1: /**
2: * Copyright (c) 2011-2019 EclipseSource Muenchen GmbH and others.
3: *
4: * All rights reserved. This program and the accompanying materials
5: * are made available under the terms of the Eclipse Public License 2.0
6: * which accompanies this distribution, and is available at
7: * https://www.eclipse.org/legal/epl-2.0/
8: *
9: * SPDX-License-Identifier: EPL-2.0
10: *
11: * Contributors:
12: * EclipseSource Muenchen GmbH - initial API and implementation
13: * Christian W. Damus - bug 546974
14: */
15: package org.eclipse.emfforms.datatemplate.provider;
16:
17: import java.util.ArrayList;
18: import java.util.Collection;
19: import java.util.List;
20:
21: import org.eclipse.emf.common.notify.Adapter;
22: import org.eclipse.emf.common.notify.Notification;
23: import org.eclipse.emf.common.notify.Notifier;
24: import org.eclipse.emf.common.util.ResourceLocator;
25: import org.eclipse.emf.edit.domain.EditingDomain;
26: import org.eclipse.emf.edit.provider.ChangeNotifier;
27: import org.eclipse.emf.edit.provider.ChildCreationExtenderManager;
28: import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
29: import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
30: import org.eclipse.emf.edit.provider.IChangeNotifier;
31: import org.eclipse.emf.edit.provider.IChildCreationExtender;
32: import org.eclipse.emf.edit.provider.IDisposable;
33: import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
34: import org.eclipse.emf.edit.provider.IItemLabelProvider;
35: import org.eclipse.emf.edit.provider.IItemPropertySource;
36: import org.eclipse.emf.edit.provider.INotifyChangedListener;
37: import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
38: import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
39: import org.eclipse.emfforms.datatemplate.DataTemplatePackage;
40: import org.eclipse.emfforms.datatemplate.util.DataTemplateAdapterFactory;
41:
42: /**
43: * This is the factory that is used to provide the interfaces needed to support Viewers.
44: * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged
45: * fireNotifyChanged}.
46: * The adapters also support Eclipse property sheets.
47: * Note that most of the adapters are shared among multiple instances.
48: * <!-- begin-user-doc -->
49: * <!-- end-user-doc -->
50: *
51: * @generated
52: */
53: public class DataTemplateItemProviderAdapterFactory extends DataTemplateAdapterFactory
54:         implements ComposeableAdapterFactory, IChangeNotifier, IDisposable, IChildCreationExtender {
55:         /**
56:          * This keeps track of the root adapter factory that delegates to this adapter factory.
57:          * <!-- begin-user-doc -->
58:          * <!-- end-user-doc -->
59:          *
60:          * @generated
61:          */
62:         protected ComposedAdapterFactory parentAdapterFactory;
63:
64:         /**
65:          * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
66:          * <!-- begin-user-doc -->
67:          * <!-- end-user-doc -->
68:          *
69:          * @generated
70:          */
71:         protected IChangeNotifier changeNotifier = new ChangeNotifier();
72:
73:         /**
74:          * This helps manage the child creation extenders.
75:          * <!-- begin-user-doc -->
76:          * <!-- end-user-doc -->
77:          *
78:          * @generated
79:          */
80:         protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(
81:                 DatatemplateEditPlugin.INSTANCE, DataTemplatePackage.eNS_URI);
82:
83:         /**
84:          * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
85:          * <!-- begin-user-doc -->
86:          * <!-- end-user-doc -->
87:          *
88:          * @generated
89:          */
90:         protected Collection<Object> supportedTypes = new ArrayList<>();
91:
92:         /**
93:          * This constructs an instance.
94:          * <!-- begin-user-doc -->
95:          * <!-- end-user-doc -->
96:          *
97:          * @generated
98:          */
99:         public DataTemplateItemProviderAdapterFactory() {
100:                 supportedTypes.add(IEditingDomainItemProvider.class);
101:                 supportedTypes.add(IStructuredItemContentProvider.class);
102:                 supportedTypes.add(ITreeItemContentProvider.class);
103:                 supportedTypes.add(IItemLabelProvider.class);
104:                 supportedTypes.add(IItemPropertySource.class);
105:         }
106:
107:         /**
108:          * This keeps track of the one adapter used for all {@link org.eclipse.emfforms.datatemplate.Template} instances.
109:          * <!-- begin-user-doc -->
110:          * <!-- end-user-doc -->
111:          *
112:          * @generated
113:          */
114:         protected TemplateItemProvider templateItemProvider;
115:
116:         /**
117:          * This creates an adapter for a {@link org.eclipse.emfforms.datatemplate.Template}.
118:          * <!-- begin-user-doc -->
119:          * <!-- end-user-doc -->
120:          *
121:          * @generated
122:          */
123:         @Override
124:         public Adapter createTemplateAdapter() {
125:•                if (templateItemProvider == null) {
126:                         templateItemProvider = new TemplateItemProvider(this);
127:                 }
128:
129:                 return templateItemProvider;
130:         }
131:
132:         /**
133:          * This keeps track of the one adapter used for all {@link org.eclipse.emfforms.datatemplate.TemplateCollection}
134:          * instances.
135:          * <!-- begin-user-doc -->
136:          * <!-- end-user-doc -->
137:          *
138:          * @generated
139:          */
140:         protected TemplateCollectionItemProvider templateCollectionItemProvider;
141:
142:         /**
143:          * This creates an adapter for a {@link org.eclipse.emfforms.datatemplate.TemplateCollection}.
144:          * <!-- begin-user-doc -->
145:          * <!-- end-user-doc -->
146:          *
147:          * @generated
148:          */
149:         @Override
150:         public Adapter createTemplateCollectionAdapter() {
151:•                if (templateCollectionItemProvider == null) {
152:                         templateCollectionItemProvider = new TemplateCollectionItemProvider(this);
153:                 }
154:
155:                 return templateCollectionItemProvider;
156:         }
157:
158:         /**
159:          * This returns the root adapter factory that contains this factory.
160:          * <!-- begin-user-doc -->
161:          * <!-- end-user-doc -->
162:          *
163:          * @generated
164:          */
165:         @Override
166:         public ComposeableAdapterFactory getRootAdapterFactory() {
167:•                return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
168:         }
169:
170:         /**
171:          * This sets the composed adapter factory that contains this factory.
172:          * <!-- begin-user-doc -->
173:          * <!-- end-user-doc -->
174:          *
175:          * @generated
176:          */
177:         @Override
178:         public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
179:                 this.parentAdapterFactory = parentAdapterFactory;
180:         }
181:
182:         /**
183:          * <!-- begin-user-doc -->
184:          * <!-- end-user-doc -->
185:          *
186:          * @generated
187:          */
188:         @Override
189:         public boolean isFactoryForType(Object type) {
190:•                return supportedTypes.contains(type) || super.isFactoryForType(type);
191:         }
192:
193:         /**
194:          * This implementation substitutes the factory itself as the key for the adapter.
195:          * <!-- begin-user-doc -->
196:          * <!-- end-user-doc -->
197:          *
198:          * @generated
199:          */
200:         @Override
201:         public Adapter adapt(Notifier notifier, Object type) {
202:                 return super.adapt(notifier, this);
203:         }
204:
205:         /**
206:          * <!-- begin-user-doc -->
207:          * <!-- end-user-doc -->
208:          *
209:          * @generated
210:          */
211:         @Override
212:         public Object adapt(Object object, Object type) {
213:•                if (isFactoryForType(type)) {
214:                         final Object adapter = super.adapt(object, type);
215:•                        if (!(type instanceof Class<?>) || ((Class<?>) type).isInstance(adapter)) {
216:                                 return adapter;
217:                         }
218:                 }
219:
220:                 return null;
221:         }
222:
223:         /**
224:          * <!-- begin-user-doc -->
225:          * <!-- end-user-doc -->
226:          *
227:          * @generated
228:          */
229:         public List<IChildCreationExtender> getChildCreationExtenders() {
230:                 return childCreationExtenderManager.getChildCreationExtenders();
231:         }
232:
233:         /**
234:          * <!-- begin-user-doc -->
235:          * <!-- end-user-doc -->
236:          *
237:          * @generated
238:          */
239:         @Override
240:         public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
241:                 return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
242:         }
243:
244:         /**
245:          * <!-- begin-user-doc -->
246:          * <!-- end-user-doc -->
247:          *
248:          * @generated
249:          */
250:         @Override
251:         public ResourceLocator getResourceLocator() {
252:                 return childCreationExtenderManager;
253:         }
254:
255:         /**
256:          * This adds a listener.
257:          * <!-- begin-user-doc -->
258:          * <!-- end-user-doc -->
259:          *
260:          * @generated
261:          */
262:         @Override
263:         public void addListener(INotifyChangedListener notifyChangedListener) {
264:                 changeNotifier.addListener(notifyChangedListener);
265:         }
266:
267:         /**
268:          * This removes a listener.
269:          * <!-- begin-user-doc -->
270:          * <!-- end-user-doc -->
271:          *
272:          * @generated
273:          */
274:         @Override
275:         public void removeListener(INotifyChangedListener notifyChangedListener) {
276:                 changeNotifier.removeListener(notifyChangedListener);
277:         }
278:
279:         /**
280:          * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
281:          * <!-- begin-user-doc -->
282:          * <!-- end-user-doc -->
283:          *
284:          * @generated
285:          */
286:         @Override
287:         public void fireNotifyChanged(Notification notification) {
288:                 changeNotifier.fireNotifyChanged(notification);
289:
290:•                if (parentAdapterFactory != null) {
291:                         parentAdapterFactory.fireNotifyChanged(notification);
292:                 }
293:         }
294:
295:         /**
296:          * This disposes all of the item providers created by this factory.
297:          * <!-- begin-user-doc -->
298:          * <!-- end-user-doc -->
299:          *
300:          * @generated
301:          */
302:         @Override
303:         public void dispose() {
304:•                if (templateItemProvider != null) {
305:                         templateItemProvider.dispose();
306:                 }
307:•                if (templateCollectionItemProvider != null) {
308:                         templateCollectionItemProvider.dispose();
309:                 }
310:         }
311:
312: }