Skip to content

Package: CategorizationItemProviderAdapterFactory$ViewChildCreationExtender$CreationSwitch

CategorizationItemProviderAdapterFactory$ViewChildCreationExtender$CreationSwitch

nameinstructionbranchcomplexitylinemethod
CategorizationItemProviderAdapterFactory.ViewChildCreationExtender.CreationSwitch(List, EditingDomain)
M: 0 C: 9
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
caseContainer(VContainer)
M: 0 C: 11
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
caseView(VView)
M: 0 C: 11
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
createChildParameter(Object, Object)
M: 0 C: 7
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
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: * EclipseSource Munich - initial API and implementation
13: */
14: package org.eclipse.emf.ecp.view.spi.categorization.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.categorization.model.VCategorizationFactory;
26: import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationPackage;
27: import org.eclipse.emf.ecp.view.spi.categorization.model.util.CategorizationAdapterFactory;
28: import org.eclipse.emf.ecp.view.spi.model.VContainer;
29: import org.eclipse.emf.ecp.view.spi.model.VView;
30: import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
31: import org.eclipse.emf.ecp.view.spi.model.util.ViewSwitch;
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 CategorizationItemProviderAdapterFactory extends CategorizationAdapterFactory implements
60:         ComposeableAdapterFactory, 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:                 CategorizationEditPlugin.INSTANCE, VCategorizationPackage.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<Object>();
97:
98:         /**
99:          * This constructs an instance.
100:          * <!-- begin-user-doc -->
101:          * <!-- end-user-doc -->
102:          *
103:          * @generated
104:          */
105:         public CategorizationItemProviderAdapterFactory() {
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
115:          * {@link org.eclipse.emf.ecp.view.spi.categorization.model.VCategorization} instances.
116:          * <!-- begin-user-doc -->
117:          * <!-- end-user-doc -->
118:          *
119:          * @generated
120:          */
121:         protected CategorizationItemProvider categorizationItemProvider;
122:
123:         /**
124:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.categorization.model.VCategorization}.
125:          * <!-- begin-user-doc -->
126:          * <!-- end-user-doc -->
127:          *
128:          * @generated
129:          */
130:         @Override
131:         public Adapter createCategorizationAdapter() {
132:                 if (categorizationItemProvider == null) {
133:                         categorizationItemProvider = new CategorizationItemProvider(this);
134:                 }
135:
136:                 return categorizationItemProvider;
137:         }
138:
139:         /**
140:          * This keeps track of the one adapter used for all
141:          * {@link org.eclipse.emf.ecp.view.spi.categorization.model.VCategory} instances.
142:          * <!-- begin-user-doc -->
143:          * <!-- end-user-doc -->
144:          *
145:          * @generated
146:          */
147:         protected CategoryItemProvider categoryItemProvider;
148:
149:         /**
150:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.categorization.model.VCategory}.
151:          * <!-- begin-user-doc -->
152:          * <!-- end-user-doc -->
153:          *
154:          * @generated
155:          */
156:         @Override
157:         public Adapter createCategoryAdapter() {
158:                 if (categoryItemProvider == null) {
159:                         categoryItemProvider = new CategoryItemProvider(this);
160:                 }
161:
162:                 return categoryItemProvider;
163:         }
164:
165:         /**
166:          * This keeps track of the one adapter used for all
167:          * {@link org.eclipse.emf.ecp.view.spi.categorization.model.VAction} instances.
168:          * <!-- begin-user-doc -->
169:          * <!-- end-user-doc -->
170:          *
171:          * @generated
172:          */
173:         protected ActionItemProvider actionItemProvider;
174:
175:         /**
176:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.categorization.model.VAction}.
177:          * <!-- begin-user-doc -->
178:          * <!-- end-user-doc -->
179:          *
180:          * @generated
181:          */
182:         @Override
183:         public Adapter createActionAdapter() {
184:                 if (actionItemProvider == null) {
185:                         actionItemProvider = new ActionItemProvider(this);
186:                 }
187:
188:                 return actionItemProvider;
189:         }
190:
191:         /**
192:          * This keeps track of the one adapter used for all
193:          * {@link org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationElement} instances.
194:          * <!-- begin-user-doc -->
195:          * <!-- end-user-doc -->
196:          *
197:          * @generated
198:          */
199:         protected CategorizationElementItemProvider categorizationElementItemProvider;
200:
201:         /**
202:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationElement}.
203:          * <!-- begin-user-doc -->
204:          * <!-- end-user-doc -->
205:          *
206:          * @generated
207:          */
208:         @Override
209:         public Adapter createCategorizationElementAdapter() {
210:                 if (categorizationElementItemProvider == null) {
211:                         categorizationElementItemProvider = new CategorizationElementItemProvider(this);
212:                 }
213:
214:                 return categorizationElementItemProvider;
215:         }
216:
217:         /**
218:          * This returns the root adapter factory that contains this factory.
219:          * <!-- begin-user-doc -->
220:          * <!-- end-user-doc -->
221:          *
222:          * @generated
223:          */
224:         @Override
225:         public ComposeableAdapterFactory getRootAdapterFactory() {
226:                 return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
227:         }
228:
229:         /**
230:          * This sets the composed adapter factory that contains this factory.
231:          * <!-- begin-user-doc -->
232:          * <!-- end-user-doc -->
233:          *
234:          * @generated
235:          */
236:         @Override
237:         public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
238:                 this.parentAdapterFactory = parentAdapterFactory;
239:         }
240:
241:         /**
242:          * <!-- begin-user-doc -->
243:          * <!-- end-user-doc -->
244:          *
245:          * @generated
246:          */
247:         @Override
248:         public boolean isFactoryForType(Object type) {
249:                 return supportedTypes.contains(type) || super.isFactoryForType(type);
250:         }
251:
252:         /**
253:          * This implementation substitutes the factory itself as the key for the adapter.
254:          * <!-- begin-user-doc -->
255:          * <!-- end-user-doc -->
256:          *
257:          * @generated
258:          */
259:         @Override
260:         public Adapter adapt(Notifier notifier, Object type) {
261:                 return super.adapt(notifier, this);
262:         }
263:
264:         /**
265:          * <!-- begin-user-doc -->
266:          * <!-- end-user-doc -->
267:          *
268:          * @generated
269:          */
270:         @Override
271:         public Object adapt(Object object, Object type) {
272:                 if (isFactoryForType(type)) {
273:                         Object adapter = super.adapt(object, type);
274:                         if (!(type instanceof Class<?>) || (((Class<?>) type).isInstance(adapter))) {
275:                                 return adapter;
276:                         }
277:                 }
278:
279:                 return null;
280:         }
281:
282:         /**
283:          * <!-- begin-user-doc -->
284:          * <!-- end-user-doc -->
285:          *
286:          * @generated
287:          */
288:         public List<IChildCreationExtender> getChildCreationExtenders() {
289:                 return childCreationExtenderManager.getChildCreationExtenders();
290:         }
291:
292:         /**
293:          * <!-- begin-user-doc -->
294:          * <!-- end-user-doc -->
295:          *
296:          * @generated
297:          */
298:         @Override
299:         public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
300:                 return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
301:         }
302:
303:         /**
304:          * <!-- begin-user-doc -->
305:          * <!-- end-user-doc -->
306:          *
307:          * @generated
308:          */
309:         @Override
310:         public ResourceLocator getResourceLocator() {
311:                 return childCreationExtenderManager;
312:         }
313:
314:         /**
315:          * This adds a listener.
316:          * <!-- begin-user-doc -->
317:          * <!-- end-user-doc -->
318:          *
319:          * @generated
320:          */
321:         @Override
322:         public void addListener(INotifyChangedListener notifyChangedListener) {
323:                 changeNotifier.addListener(notifyChangedListener);
324:         }
325:
326:         /**
327:          * This removes a listener.
328:          * <!-- begin-user-doc -->
329:          * <!-- end-user-doc -->
330:          *
331:          * @generated
332:          */
333:         @Override
334:         public void removeListener(INotifyChangedListener notifyChangedListener) {
335:                 changeNotifier.removeListener(notifyChangedListener);
336:         }
337:
338:         /**
339:          * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
340:          * <!-- begin-user-doc -->
341:          * <!-- end-user-doc -->
342:          *
343:          * @generated
344:          */
345:         @Override
346:         public void fireNotifyChanged(Notification notification) {
347:                 changeNotifier.fireNotifyChanged(notification);
348:
349:                 if (parentAdapterFactory != null) {
350:                         parentAdapterFactory.fireNotifyChanged(notification);
351:                 }
352:         }
353:
354:         /**
355:          * This disposes all of the item providers created by this factory.
356:          * <!-- begin-user-doc -->
357:          * <!-- end-user-doc -->
358:          *
359:          * @generated
360:          */
361:         @Override
362:         public void dispose() {
363:                 if (categorizationItemProvider != null)
364:                         categorizationItemProvider.dispose();
365:                 if (categoryItemProvider != null)
366:                         categoryItemProvider.dispose();
367:                 if (actionItemProvider != null)
368:                         actionItemProvider.dispose();
369:                 if (categorizationElementItemProvider != null)
370:                         categorizationElementItemProvider.dispose();
371:         }
372:
373:         /**
374:          * A child creation extender for the {@link VViewPackage}.
375:          * <!-- begin-user-doc -->
376:          * <!-- end-user-doc -->
377:          *
378:          * @generated
379:          */
380:         public static class ViewChildCreationExtender implements IChildCreationExtender {
381:                 /**
382:                  * The switch for creating child descriptors specific to each extended class.
383:                  * <!-- begin-user-doc -->
384:                  * <!-- end-user-doc -->
385:                  *
386:                  * @generated
387:                  */
388:                 protected static class CreationSwitch extends ViewSwitch<Object> {
389:                         /**
390:                          * The child descriptors being populated.
391:                          * <!-- begin-user-doc -->
392:                          * <!-- end-user-doc -->
393:                          *
394:                          * @generated
395:                          */
396:                         protected List<Object> newChildDescriptors;
397:
398:                         /**
399:                          * The domain in which to create the children.
400:                          * <!-- begin-user-doc -->
401:                          * <!-- end-user-doc -->
402:                          *
403:                          * @generated
404:                          */
405:                         protected EditingDomain editingDomain;
406:
407:                         /**
408:                          * Creates the a switch for populating child descriptors in the given domain.
409:                          * <!-- begin-user-doc -->
410:                          * <!-- end-user-doc -->
411:                          *
412:                          * @generated
413:                          */
414:                         CreationSwitch(List<Object> newChildDescriptors, EditingDomain editingDomain) {
415:                                 this.newChildDescriptors = newChildDescriptors;
416:                                 this.editingDomain = editingDomain;
417:                         }
418:
419:                         /**
420:                          * <!-- begin-user-doc -->
421:                          * <!-- end-user-doc -->
422:                          *
423:                          * @generated
424:                          */
425:                         @Override
426:                         public Object caseView(VView object) {
427:                                 newChildDescriptors.add(createChildParameter(VViewPackage.Literals.VIEW__CHILDREN,
428:                                         VCategorizationFactory.eINSTANCE.createCategorizationElement()));
429:
430:                                 return null;
431:                         }
432:
433:                         /**
434:                          * <!-- begin-user-doc -->
435:                          * <!-- end-user-doc -->
436:                          *
437:                          * @generated
438:                          */
439:                         @Override
440:                         public Object caseContainer(VContainer object) {
441:                                 newChildDescriptors.add(createChildParameter(VViewPackage.Literals.CONTAINER__CHILDREN,
442:                                         VCategorizationFactory.eINSTANCE.createCategorizationElement()));
443:
444:                                 return null;
445:                         }
446:
447:                         /**
448:                          * <!-- begin-user-doc -->
449:                          * <!-- end-user-doc -->
450:                          *
451:                          * @generated
452:                          */
453:                         protected CommandParameter createChildParameter(Object feature, Object child) {
454:                                 return new CommandParameter(null, feature, child);
455:                         }
456:
457:                 }
458:
459:                 /**
460:                  * <!-- begin-user-doc -->
461:                  * <!-- end-user-doc -->
462:                  *
463:                  * @generated
464:                  */
465:                 @Override
466:                 public Collection<Object> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
467:                         ArrayList<Object> result = new ArrayList<Object>();
468:                         new CreationSwitch(result, editingDomain).doSwitch((EObject) object);
469:                         return result;
470:                 }
471:
472:                 /**
473:                  * <!-- begin-user-doc -->
474:                  * <!-- end-user-doc -->
475:                  *
476:                  * @generated
477:                  */
478:                 @Override
479:                 public ResourceLocator getResourceLocator() {
480:                         return CategorizationEditPlugin.INSTANCE;
481:                 }
482:         }
483:
484: }