Skip to content

Package: TableItemProviderAdapterFactory

TableItemProviderAdapterFactory

nameinstructionbranchcomplexitylinemethod
TableItemProviderAdapterFactory()
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%
createEnablementConfigurationAdapter()
M: 0 C: 12
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
createReadOnlyColumnConfigurationAdapter()
M: 0 C: 12
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
createTableControlAdapter()
M: 0 C: 12
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
createTableDomainModelReferenceAdapter()
M: 0 C: 12
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
createWidthConfigurationAdapter()
M: 0 C: 12
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
dispose()
M: 9 C: 22
71%
M: 3 C: 7
70%
M: 3 C: 3
50%
M: 3 C: 8
73%
M: 0 C: 1
100%
fireNotifyChanged(Notification)
M: 0 C: 12
100%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 0 C: 4
100%
M: 0 C: 1
100%
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: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
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: 2 C: 7
78%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 0 C: 1
100%
M: 0 C: 1
100%
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-2013 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: * Eugen Neufeld - initial API and implementation
13: */
14: package org.eclipse.emf.ecp.view.spi.table.model.provider;
15:
16: import java.util.ArrayList;
17: import java.util.Collection;
18: import java.util.List;
19:
20: import org.eclipse.emf.common.notify.Adapter;
21: import org.eclipse.emf.common.notify.Notification;
22: import org.eclipse.emf.common.notify.Notifier;
23: import org.eclipse.emf.common.util.ResourceLocator;
24: import org.eclipse.emf.ecore.EObject;
25: import org.eclipse.emf.ecp.view.spi.model.VContainer;
26: import org.eclipse.emf.ecp.view.spi.model.VView;
27: import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
28: import org.eclipse.emf.ecp.view.spi.model.util.ViewSwitch;
29: import org.eclipse.emf.ecp.view.spi.table.model.VTableFactory;
30: import org.eclipse.emf.ecp.view.spi.table.model.VTablePackage;
31: import org.eclipse.emf.ecp.view.spi.table.model.util.TableAdapterFactory;
32: import org.eclipse.emf.edit.command.CommandParameter;
33: import org.eclipse.emf.edit.domain.EditingDomain;
34: import org.eclipse.emf.edit.provider.ChangeNotifier;
35: import org.eclipse.emf.edit.provider.ChildCreationExtenderManager;
36: import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
37: import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
38: import org.eclipse.emf.edit.provider.IChangeNotifier;
39: import org.eclipse.emf.edit.provider.IChildCreationExtender;
40: import org.eclipse.emf.edit.provider.IDisposable;
41: import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
42: import org.eclipse.emf.edit.provider.IItemLabelProvider;
43: import org.eclipse.emf.edit.provider.IItemPropertySource;
44: import org.eclipse.emf.edit.provider.INotifyChangedListener;
45: import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
46: import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
47:
48: /**
49: * This is the factory that is used to provide the interfaces needed to support Viewers.
50: * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged
51: * fireNotifyChanged}.
52: * The adapters also support Eclipse property sheets.
53: * Note that most of the adapters are shared among multiple instances.
54: * <!-- begin-user-doc -->
55: * <!-- end-user-doc -->
56: *
57: * @generated
58: */
59: public class TableItemProviderAdapterFactory extends TableAdapterFactory implements ComposeableAdapterFactory,
60:         IChangeNotifier, IDisposable, IChildCreationExtender {
61:         /**
62:          * This keeps track of the root adapter factory that delegates to this adapter factory.
63:          * <!-- begin-user-doc -->
64:          * <!-- end-user-doc -->
65:          *
66:          * @generated
67:          */
68:         protected ComposedAdapterFactory parentAdapterFactory;
69:
70:         /**
71:          * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
72:          * <!-- begin-user-doc -->
73:          * <!-- end-user-doc -->
74:          *
75:          * @generated
76:          */
77:         protected IChangeNotifier changeNotifier = new ChangeNotifier();
78:
79:         /**
80:          * This helps manage the child creation extenders.
81:          * <!-- begin-user-doc -->
82:          * <!-- end-user-doc -->
83:          *
84:          * @generated
85:          */
86:         protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(
87:                 TableEditPlugin.INSTANCE, VTablePackage.eNS_URI);
88:
89:         /**
90:          * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
91:          * <!-- begin-user-doc -->
92:          * <!-- end-user-doc -->
93:          *
94:          * @generated
95:          */
96:         protected Collection<Object> supportedTypes = new ArrayList<>();
97:
98:         /**
99:          * This constructs an instance.
100:          * <!-- begin-user-doc -->
101:          * <!-- end-user-doc -->
102:          *
103:          * @generated
104:          */
105:         public TableItemProviderAdapterFactory() {
106:                 supportedTypes.add(IEditingDomainItemProvider.class);
107:                 supportedTypes.add(IStructuredItemContentProvider.class);
108:                 supportedTypes.add(ITreeItemContentProvider.class);
109:                 supportedTypes.add(IItemLabelProvider.class);
110:                 supportedTypes.add(IItemPropertySource.class);
111:         }
112:
113:         /**
114:          * This keeps track of the one adapter used for all {@link org.eclipse.emf.ecp.view.spi.table.model.VTableControl}
115:          * instances.
116:          * <!-- begin-user-doc -->
117:          * <!-- end-user-doc -->
118:          *
119:          * @generated
120:          */
121:         protected TableControlItemProvider tableControlItemProvider;
122:
123:         /**
124:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.table.model.VTableControl}.
125:          * <!-- begin-user-doc -->
126:          * <!-- end-user-doc -->
127:          *
128:          * @generated
129:          */
130:         @Override
131:         public Adapter createTableControlAdapter() {
132:•                if (tableControlItemProvider == null) {
133:                         tableControlItemProvider = new TableControlItemProvider(this);
134:                 }
135:
136:                 return tableControlItemProvider;
137:         }
138:
139:         /**
140:          * This keeps track of the one adapter used for all
141:          * {@link org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference} instances.
142:          * <!-- begin-user-doc -->
143:          * <!-- end-user-doc -->
144:          *
145:          * @generated
146:          */
147:         protected TableDomainModelReferenceItemProvider tableDomainModelReferenceItemProvider;
148:
149:         /**
150:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference}.
151:          * <!-- begin-user-doc -->
152:          * <!-- end-user-doc -->
153:          *
154:          * @generated
155:          */
156:         @Override
157:         public Adapter createTableDomainModelReferenceAdapter() {
158:•                if (tableDomainModelReferenceItemProvider == null) {
159:                         tableDomainModelReferenceItemProvider = new TableDomainModelReferenceItemProvider(this);
160:                 }
161:
162:                 return tableDomainModelReferenceItemProvider;
163:         }
164:
165:         /**
166:          * This keeps track of the one adapter used for all
167:          * {@link org.eclipse.emf.ecp.view.spi.table.model.VReadOnlyColumnConfiguration} instances.
168:          * <!-- begin-user-doc -->
169:          * <!-- end-user-doc -->
170:          *
171:          * @generated
172:          */
173:         protected ReadOnlyColumnConfigurationItemProvider readOnlyColumnConfigurationItemProvider;
174:
175:         /**
176:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.table.model.VReadOnlyColumnConfiguration}.
177:          * <!-- begin-user-doc -->
178:          * <!-- end-user-doc -->
179:          *
180:          * @generated
181:          */
182:         @Override
183:         public Adapter createReadOnlyColumnConfigurationAdapter() {
184:•                if (readOnlyColumnConfigurationItemProvider == null) {
185:                         readOnlyColumnConfigurationItemProvider = new ReadOnlyColumnConfigurationItemProvider(this);
186:                 }
187:
188:                 return readOnlyColumnConfigurationItemProvider;
189:         }
190:
191:         /**
192:          * This keeps track of the one adapter used for all
193:          * {@link org.eclipse.emf.ecp.view.spi.table.model.VWidthConfiguration} instances.
194:          * <!-- begin-user-doc -->
195:          *
196:          * @since 1.9
197:          * <!-- end-user-doc -->
198:          * @generated
199:          */
200:         protected WidthConfigurationItemProvider widthConfigurationItemProvider;
201:
202:         /**
203:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.table.model.VWidthConfiguration}.
204:          * <!-- begin-user-doc -->
205:          * <!-- end-user-doc -->
206:          *
207:          * @generated
208:          */
209:         @Override
210:         public Adapter createWidthConfigurationAdapter() {
211:•                if (widthConfigurationItemProvider == null) {
212:                         widthConfigurationItemProvider = new WidthConfigurationItemProvider(this);
213:                 }
214:
215:                 return widthConfigurationItemProvider;
216:         }
217:
218:         /**
219:          * This keeps track of the one adapter used for all
220:          * {@link org.eclipse.emf.ecp.view.spi.table.model.VEnablementConfiguration} instances.
221:          * <!-- begin-user-doc -->
222:          *
223:          * @since 1.13
224:          * <!-- end-user-doc -->
225:          * @generated
226:          */
227:         protected EnablementConfigurationItemProvider enablementConfigurationItemProvider;
228:
229:         /**
230:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.table.model.VEnablementConfiguration}.
231:          * <!-- begin-user-doc -->
232:          * <!-- end-user-doc -->
233:          *
234:          * @generated
235:          */
236:         @Override
237:         public Adapter createEnablementConfigurationAdapter() {
238:•                if (enablementConfigurationItemProvider == null) {
239:                         enablementConfigurationItemProvider = new EnablementConfigurationItemProvider(this);
240:                 }
241:
242:                 return enablementConfigurationItemProvider;
243:         }
244:
245:         /**
246:          * This returns the root adapter factory that contains this factory.
247:          * <!-- begin-user-doc -->
248:          * <!-- end-user-doc -->
249:          *
250:          * @generated
251:          */
252:         @Override
253:         public ComposeableAdapterFactory getRootAdapterFactory() {
254:•                return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
255:         }
256:
257:         /**
258:          * This sets the composed adapter factory that contains this factory.
259:          * <!-- begin-user-doc -->
260:          * <!-- end-user-doc -->
261:          *
262:          * @generated
263:          */
264:         @Override
265:         public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
266:                 this.parentAdapterFactory = parentAdapterFactory;
267:         }
268:
269:         /**
270:          * <!-- begin-user-doc -->
271:          * <!-- end-user-doc -->
272:          *
273:          * @generated
274:          */
275:         @Override
276:         public boolean isFactoryForType(Object type) {
277:•                return supportedTypes.contains(type) || super.isFactoryForType(type);
278:         }
279:
280:         /**
281:          * This implementation substitutes the factory itself as the key for the adapter.
282:          * <!-- begin-user-doc -->
283:          * <!-- end-user-doc -->
284:          *
285:          * @generated
286:          */
287:         @Override
288:         public Adapter adapt(Notifier notifier, Object type) {
289:                 return super.adapt(notifier, this);
290:         }
291:
292:         /**
293:          * <!-- begin-user-doc -->
294:          * <!-- end-user-doc -->
295:          *
296:          * @generated
297:          */
298:         @Override
299:         public Object adapt(Object object, Object type) {
300:•                if (isFactoryForType(type)) {
301:                         final Object adapter = super.adapt(object, type);
302:•                        if (!(type instanceof Class<?>) || ((Class<?>) type).isInstance(adapter)) {
303:                                 return adapter;
304:                         }
305:                 }
306:
307:                 return null;
308:         }
309:
310:         /**
311:          * <!-- begin-user-doc -->
312:          * <!-- end-user-doc -->
313:          *
314:          * @generated
315:          */
316:         public List<IChildCreationExtender> getChildCreationExtenders() {
317:                 return childCreationExtenderManager.getChildCreationExtenders();
318:         }
319:
320:         /**
321:          * <!-- begin-user-doc -->
322:          * <!-- end-user-doc -->
323:          *
324:          * @generated
325:          */
326:         @Override
327:         public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
328:                 return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
329:         }
330:
331:         /**
332:          * <!-- begin-user-doc -->
333:          * <!-- end-user-doc -->
334:          *
335:          * @generated
336:          */
337:         @Override
338:         public ResourceLocator getResourceLocator() {
339:                 return childCreationExtenderManager;
340:         }
341:
342:         /**
343:          * This adds a listener.
344:          * <!-- begin-user-doc -->
345:          * <!-- end-user-doc -->
346:          *
347:          * @generated
348:          */
349:         @Override
350:         public void addListener(INotifyChangedListener notifyChangedListener) {
351:                 changeNotifier.addListener(notifyChangedListener);
352:         }
353:
354:         /**
355:          * This removes a listener.
356:          * <!-- begin-user-doc -->
357:          * <!-- end-user-doc -->
358:          *
359:          * @generated
360:          */
361:         @Override
362:         public void removeListener(INotifyChangedListener notifyChangedListener) {
363:                 changeNotifier.removeListener(notifyChangedListener);
364:         }
365:
366:         /**
367:          * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
368:          * <!-- begin-user-doc -->
369:          * <!-- end-user-doc -->
370:          *
371:          * @generated
372:          */
373:         @Override
374:         public void fireNotifyChanged(Notification notification) {
375:                 changeNotifier.fireNotifyChanged(notification);
376:
377:•                if (parentAdapterFactory != null) {
378:                         parentAdapterFactory.fireNotifyChanged(notification);
379:                 }
380:         }
381:
382:         /**
383:          * This disposes all of the item providers created by this factory.
384:          * <!-- begin-user-doc -->
385:          * <!-- end-user-doc -->
386:          *
387:          * @generated
388:          */
389:         @Override
390:         public void dispose() {
391:•                if (tableControlItemProvider != null) {
392:                         tableControlItemProvider.dispose();
393:                 }
394:•                if (tableDomainModelReferenceItemProvider != null) {
395:                         tableDomainModelReferenceItemProvider.dispose();
396:                 }
397:•                if (readOnlyColumnConfigurationItemProvider != null) {
398:                         readOnlyColumnConfigurationItemProvider.dispose();
399:                 }
400:•                if (widthConfigurationItemProvider != null) {
401:                         widthConfigurationItemProvider.dispose();
402:                 }
403:•                if (enablementConfigurationItemProvider != null) {
404:                         enablementConfigurationItemProvider.dispose();
405:                 }
406:         }
407:
408:         /**
409:          * A child creation extender for the {@link VViewPackage}.
410:          * <!-- begin-user-doc -->
411:          * <!-- end-user-doc -->
412:          *
413:          * @generated
414:          */
415:         public static class ViewChildCreationExtender implements IChildCreationExtender {
416:                 /**
417:                  * The switch for creating child descriptors specific to each extended class.
418:                  * <!-- begin-user-doc -->
419:                  * <!-- end-user-doc -->
420:                  *
421:                  * @generated
422:                  */
423:                 protected static class CreationSwitch extends ViewSwitch<Object> {
424:                         /**
425:                          * The child descriptors being populated.
426:                          * <!-- begin-user-doc -->
427:                          * <!-- end-user-doc -->
428:                          *
429:                          * @generated
430:                          */
431:                         protected List<Object> newChildDescriptors;
432:
433:                         /**
434:                          * The domain in which to create the children.
435:                          * <!-- begin-user-doc -->
436:                          * <!-- end-user-doc -->
437:                          *
438:                          * @generated
439:                          */
440:                         protected EditingDomain editingDomain;
441:
442:                         /**
443:                          * Creates the a switch for populating child descriptors in the given domain.
444:                          * <!-- begin-user-doc -->
445:                          * <!-- end-user-doc -->
446:                          *
447:                          * @generated
448:                          */
449:                         CreationSwitch(List<Object> newChildDescriptors, EditingDomain editingDomain) {
450:                                 this.newChildDescriptors = newChildDescriptors;
451:                                 this.editingDomain = editingDomain;
452:                         }
453:
454:                         /**
455:                          * <!-- begin-user-doc -->
456:                          * <!-- end-user-doc -->
457:                          *
458:                          * @generated
459:                          */
460:                         @Override
461:                         public Object caseView(VView object) {
462:                                 newChildDescriptors.add(createChildParameter(VViewPackage.Literals.VIEW__CHILDREN,
463:                                         VTableFactory.eINSTANCE.createTableControl()));
464:
465:                                 return null;
466:                         }
467:
468:                         /**
469:                          * <!-- begin-user-doc -->
470:                          * <!-- end-user-doc -->
471:                          *
472:                          * @generated
473:                          */
474:                         @Override
475:                         public Object caseContainer(VContainer object) {
476:                                 newChildDescriptors.add(createChildParameter(VViewPackage.Literals.CONTAINER__CHILDREN,
477:                                         VTableFactory.eINSTANCE.createTableControl()));
478:
479:                                 return null;
480:                         }
481:
482:                         /**
483:                          * <!-- begin-user-doc -->
484:                          * <!-- end-user-doc -->
485:                          *
486:                          * @generated
487:                          */
488:                         protected CommandParameter createChildParameter(Object feature, Object child) {
489:                                 return new CommandParameter(null, feature, child);
490:                         }
491:
492:                 }
493:
494:                 /**
495:                  * <!-- begin-user-doc -->
496:                  * <!-- end-user-doc -->
497:                  *
498:                  * @generated
499:                  */
500:                 @Override
501:                 public Collection<Object> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
502:                         final ArrayList<Object> result = new ArrayList<>();
503:                         new CreationSwitch(result, editingDomain).doSwitch((EObject) object);
504:                         return result;
505:                 }
506:
507:                 /**
508:                  * <!-- begin-user-doc -->
509:                  * <!-- end-user-doc -->
510:                  *
511:                  * @generated
512:                  */
513:                 @Override
514:                 public ResourceLocator getResourceLocator() {
515:                         return TableEditPlugin.INSTANCE;
516:                 }
517:         }
518:
519: }