Skip to content

Package: RuleItemProviderAdapterFactory$ViewChildCreationExtender

RuleItemProviderAdapterFactory$ViewChildCreationExtender

nameinstructionbranchcomplexitylinemethod
RuleItemProviderAdapterFactory.ViewChildCreationExtender()
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%
getNewChildDescriptors(Object, EditingDomain)
M: 0 C: 15
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
getResourceLocator()
M: 0 C: 2
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-2018 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 GmbH - initial API and implementation
13: * Christian W. Damus - bugs 527753, 530900
14: ******************************************************************************/
15: package org.eclipse.emf.ecp.view.spi.rule.model.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.ecore.EObject;
26: import org.eclipse.emf.ecp.view.spi.model.VElement;
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.rule.model.RuleFactory;
30: import org.eclipse.emf.ecp.view.spi.rule.model.RulePackage;
31: import org.eclipse.emf.ecp.view.spi.rule.model.util.RuleAdapterFactory;
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: *
56: * @since 1.2
57: * <!-- end-user-doc -->
58: * @generated
59: */
60: public class RuleItemProviderAdapterFactory extends RuleAdapterFactory
61:         implements ComposeableAdapterFactory, IChangeNotifier, IDisposable,
62:         IChildCreationExtender {
63:         /**
64:          * This keeps track of the root adapter factory that delegates to this adapter factory.
65:          * <!-- begin-user-doc -->
66:          * <!-- end-user-doc -->
67:          *
68:          * @generated
69:          */
70:         protected ComposedAdapterFactory parentAdapterFactory;
71:
72:         /**
73:          * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
74:          * <!-- begin-user-doc -->
75:          * <!-- end-user-doc -->
76:          *
77:          * @generated
78:          */
79:         protected IChangeNotifier changeNotifier = new ChangeNotifier();
80:
81:         /**
82:          * This helps manage the child creation extenders.
83:          * <!-- begin-user-doc -->
84:          * <!-- end-user-doc -->
85:          *
86:          * @generated
87:          */
88:         protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(
89:                 RuleEditPlugin.INSTANCE, RulePackage.eNS_URI);
90:
91:         /**
92:          * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
93:          * <!-- begin-user-doc -->
94:          * <!-- end-user-doc -->
95:          *
96:          * @generated
97:          */
98:         protected Collection<Object> supportedTypes = new ArrayList<>();
99:
100:         /**
101:          * This constructs an instance.
102:          * <!-- begin-user-doc -->
103:          * <!-- end-user-doc -->
104:          *
105:          * @generated
106:          */
107:         public RuleItemProviderAdapterFactory() {
108:                 supportedTypes.add(IEditingDomainItemProvider.class);
109:                 supportedTypes.add(IStructuredItemContentProvider.class);
110:                 supportedTypes.add(ITreeItemContentProvider.class);
111:                 supportedTypes.add(IItemLabelProvider.class);
112:                 supportedTypes.add(IItemPropertySource.class);
113:         }
114:
115:         /**
116:          * This keeps track of the one adapter used for all {@link org.eclipse.emf.ecp.view.spi.rule.model.LeafCondition}
117:          * instances.
118:          * <!-- begin-user-doc -->
119:          * <!-- end-user-doc -->
120:          *
121:          * @generated
122:          */
123:         protected LeafConditionItemProvider leafConditionItemProvider;
124:
125:         /**
126:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.rule.model.LeafCondition}.
127:          * <!-- begin-user-doc -->
128:          * <!-- end-user-doc -->
129:          *
130:          * @generated
131:          */
132:         @Override
133:         public Adapter createLeafConditionAdapter() {
134:                 if (leafConditionItemProvider == null) {
135:                         leafConditionItemProvider = new LeafConditionItemProvider(this);
136:                 }
137:
138:                 return leafConditionItemProvider;
139:         }
140:
141:         /**
142:          * This keeps track of the one adapter used for all {@link org.eclipse.emf.ecp.view.spi.rule.model.OrCondition}
143:          * instances.
144:          * <!-- begin-user-doc -->
145:          * <!-- end-user-doc -->
146:          *
147:          * @generated
148:          */
149:         protected OrConditionItemProvider orConditionItemProvider;
150:
151:         /**
152:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.rule.model.OrCondition}.
153:          * <!-- begin-user-doc -->
154:          * <!-- end-user-doc -->
155:          *
156:          * @generated
157:          */
158:         @Override
159:         public Adapter createOrConditionAdapter() {
160:                 if (orConditionItemProvider == null) {
161:                         orConditionItemProvider = new OrConditionItemProvider(this);
162:                 }
163:
164:                 return orConditionItemProvider;
165:         }
166:
167:         /**
168:          * This keeps track of the one adapter used for all {@link org.eclipse.emf.ecp.view.spi.rule.model.AndCondition}
169:          * instances.
170:          * <!-- begin-user-doc -->
171:          * <!-- end-user-doc -->
172:          *
173:          * @generated
174:          */
175:         protected AndConditionItemProvider andConditionItemProvider;
176:
177:         /**
178:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.rule.model.AndCondition}.
179:          * <!-- begin-user-doc -->
180:          * <!-- end-user-doc -->
181:          *
182:          * @generated
183:          */
184:         @Override
185:         public Adapter createAndConditionAdapter() {
186:                 if (andConditionItemProvider == null) {
187:                         andConditionItemProvider = new AndConditionItemProvider(this);
188:                 }
189:
190:                 return andConditionItemProvider;
191:         }
192:
193:         /**
194:          * This keeps track of the one adapter used for all {@link org.eclipse.emf.ecp.view.spi.rule.model.ShowRule}
195:          * instances.
196:          * <!-- begin-user-doc -->
197:          * <!-- end-user-doc -->
198:          *
199:          * @generated
200:          */
201:         protected ShowRuleItemProvider showRuleItemProvider;
202:
203:         /**
204:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.rule.model.ShowRule}.
205:          * <!-- begin-user-doc -->
206:          * <!-- end-user-doc -->
207:          *
208:          * @generated
209:          */
210:         @Override
211:         public Adapter createShowRuleAdapter() {
212:                 if (showRuleItemProvider == null) {
213:                         showRuleItemProvider = new ShowRuleItemProvider(this);
214:                 }
215:
216:                 return showRuleItemProvider;
217:         }
218:
219:         /**
220:          * This keeps track of the one adapter used for all {@link org.eclipse.emf.ecp.view.spi.rule.model.EnableRule}
221:          * instances.
222:          * <!-- begin-user-doc -->
223:          * <!-- end-user-doc -->
224:          *
225:          * @generated
226:          */
227:         protected EnableRuleItemProvider enableRuleItemProvider;
228:
229:         /**
230:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.rule.model.EnableRule}.
231:          * <!-- begin-user-doc -->
232:          * <!-- end-user-doc -->
233:          *
234:          * @generated
235:          */
236:         @Override
237:         public Adapter createEnableRuleAdapter() {
238:                 if (enableRuleItemProvider == null) {
239:                         enableRuleItemProvider = new EnableRuleItemProvider(this);
240:                 }
241:
242:                 return enableRuleItemProvider;
243:         }
244:
245:         /**
246:          * This keeps track of the one adapter used for all {@link org.eclipse.emf.ecp.view.spi.rule.model.IterateCondition}
247:          * instances.
248:          * <!-- begin-user-doc -->
249:          * <!-- end-user-doc -->
250:          *
251:          * @generated
252:          */
253:         protected IterateConditionItemProvider iterateConditionItemProvider;
254:
255:         /**
256:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.rule.model.IterateCondition}.
257:          * <!-- begin-user-doc -->
258:          * <!-- end-user-doc -->
259:          *
260:          * @generated
261:          */
262:         @Override
263:         public Adapter createIterateConditionAdapter() {
264:                 if (iterateConditionItemProvider == null) {
265:                         iterateConditionItemProvider = new IterateConditionItemProvider(this);
266:                 }
267:
268:                 return iterateConditionItemProvider;
269:         }
270:
271:         /**
272:          * This keeps track of the one adapter used for all {@link org.eclipse.emf.ecp.view.spi.rule.model.True} instances.
273:          * <!-- begin-user-doc -->
274:          * <!-- end-user-doc -->
275:          *
276:          * @generated
277:          */
278:         protected TrueItemProvider trueItemProvider;
279:
280:         /**
281:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.rule.model.True}.
282:          * <!-- begin-user-doc -->
283:          * <!-- end-user-doc -->
284:          *
285:          * @generated
286:          */
287:         @Override
288:         public Adapter createTrueAdapter() {
289:                 if (trueItemProvider == null) {
290:                         trueItemProvider = new TrueItemProvider(this);
291:                 }
292:
293:                 return trueItemProvider;
294:         }
295:
296:         /**
297:          * This keeps track of the one adapter used for all {@link org.eclipse.emf.ecp.view.spi.rule.model.False} instances.
298:          * <!-- begin-user-doc -->
299:          * <!-- end-user-doc -->
300:          *
301:          * @generated
302:          */
303:         protected FalseItemProvider falseItemProvider;
304:
305:         /**
306:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.rule.model.False}.
307:          * <!-- begin-user-doc -->
308:          * <!-- end-user-doc -->
309:          *
310:          * @generated
311:          */
312:         @Override
313:         public Adapter createFalseAdapter() {
314:                 if (falseItemProvider == null) {
315:                         falseItemProvider = new FalseItemProvider(this);
316:                 }
317:
318:                 return falseItemProvider;
319:         }
320:
321:         /**
322:          * This keeps track of the one adapter used for all {@link org.eclipse.emf.ecp.view.spi.rule.model.NotCondition}
323:          * instances.
324:          * <!-- begin-user-doc -->
325:          * <!-- end-user-doc -->
326:          *
327:          * @generated
328:          */
329:         protected NotConditionItemProvider notConditionItemProvider;
330:
331:         /**
332:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.rule.model.NotCondition}.
333:          * <!-- begin-user-doc -->
334:          * <!-- end-user-doc -->
335:          *
336:          * @generated
337:          */
338:         @Override
339:         public Adapter createNotConditionAdapter() {
340:                 if (notConditionItemProvider == null) {
341:                         notConditionItemProvider = new NotConditionItemProvider(this);
342:                 }
343:
344:                 return notConditionItemProvider;
345:         }
346:
347:         /**
348:          * This keeps track of the one adapter used for all {@link org.eclipse.emf.ecp.view.spi.rule.model.IsProxyCondition}
349:          * instances.
350:          * <!-- begin-user-doc -->
351:          * <!-- end-user-doc -->
352:          *
353:          * @generated
354:          */
355:         protected IsProxyConditionItemProvider isProxyConditionItemProvider;
356:
357:         /**
358:          * This creates an adapter for a {@link org.eclipse.emf.ecp.view.spi.rule.model.IsProxyCondition}.
359:          * <!-- begin-user-doc -->
360:          * <!-- end-user-doc -->
361:          *
362:          * @generated
363:          */
364:         @Override
365:         public Adapter createIsProxyConditionAdapter() {
366:                 if (isProxyConditionItemProvider == null) {
367:                         isProxyConditionItemProvider = new IsProxyConditionItemProvider(this);
368:                 }
369:
370:                 return isProxyConditionItemProvider;
371:         }
372:
373:         /**
374:          * This returns the root adapter factory that contains this factory.
375:          * <!-- begin-user-doc -->
376:          * <!-- end-user-doc -->
377:          *
378:          * @generated
379:          */
380:         @Override
381:         public ComposeableAdapterFactory getRootAdapterFactory() {
382:                 return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
383:         }
384:
385:         /**
386:          * This sets the composed adapter factory that contains this factory.
387:          * <!-- begin-user-doc -->
388:          * <!-- end-user-doc -->
389:          *
390:          * @generated
391:          */
392:         @Override
393:         public void setParentAdapterFactory(
394:                 ComposedAdapterFactory parentAdapterFactory) {
395:                 this.parentAdapterFactory = parentAdapterFactory;
396:         }
397:
398:         /**
399:          * <!-- begin-user-doc -->
400:          * <!-- end-user-doc -->
401:          *
402:          * @generated
403:          */
404:         @Override
405:         public boolean isFactoryForType(Object type) {
406:                 return supportedTypes.contains(type) || super.isFactoryForType(type);
407:         }
408:
409:         /**
410:          * This implementation substitutes the factory itself as the key for the adapter.
411:          * <!-- begin-user-doc -->
412:          * <!-- end-user-doc -->
413:          *
414:          * @generated
415:          */
416:         @Override
417:         public Adapter adapt(Notifier notifier, Object type) {
418:                 return super.adapt(notifier, this);
419:         }
420:
421:         /**
422:          * <!-- begin-user-doc -->
423:          * <!-- end-user-doc -->
424:          *
425:          * @generated
426:          */
427:         @Override
428:         public Object adapt(Object object, Object type) {
429:                 if (isFactoryForType(type)) {
430:                         final Object adapter = super.adapt(object, type);
431:                         if (!(type instanceof Class<?>) || ((Class<?>) type).isInstance(adapter)) {
432:                                 return adapter;
433:                         }
434:                 }
435:
436:                 return null;
437:         }
438:
439:         /**
440:          * <!-- begin-user-doc -->
441:          * <!-- end-user-doc -->
442:          *
443:          * @generated
444:          */
445:         public List<IChildCreationExtender> getChildCreationExtenders() {
446:                 return childCreationExtenderManager.getChildCreationExtenders();
447:         }
448:
449:         /**
450:          * <!-- begin-user-doc -->
451:          * <!-- end-user-doc -->
452:          *
453:          * @generated
454:          */
455:         @Override
456:         public Collection<?> getNewChildDescriptors(Object object,
457:                 EditingDomain editingDomain) {
458:                 return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
459:         }
460:
461:         /**
462:          * <!-- begin-user-doc -->
463:          * <!-- end-user-doc -->
464:          *
465:          * @generated
466:          */
467:         @Override
468:         public ResourceLocator getResourceLocator() {
469:                 return childCreationExtenderManager;
470:         }
471:
472:         /**
473:          * This adds a listener.
474:          * <!-- begin-user-doc -->
475:          * <!-- end-user-doc -->
476:          *
477:          * @generated
478:          */
479:         @Override
480:         public void addListener(INotifyChangedListener notifyChangedListener) {
481:                 changeNotifier.addListener(notifyChangedListener);
482:         }
483:
484:         /**
485:          * This removes a listener.
486:          * <!-- begin-user-doc -->
487:          * <!-- end-user-doc -->
488:          *
489:          * @generated
490:          */
491:         @Override
492:         public void removeListener(INotifyChangedListener notifyChangedListener) {
493:                 changeNotifier.removeListener(notifyChangedListener);
494:         }
495:
496:         /**
497:          * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
498:          * <!-- begin-user-doc -->
499:          * <!-- end-user-doc -->
500:          *
501:          * @generated
502:          */
503:         @Override
504:         public void fireNotifyChanged(Notification notification) {
505:                 changeNotifier.fireNotifyChanged(notification);
506:
507:                 if (parentAdapterFactory != null) {
508:                         parentAdapterFactory.fireNotifyChanged(notification);
509:                 }
510:         }
511:
512:         /**
513:          * This disposes all of the item providers created by this factory.
514:          * <!-- begin-user-doc -->
515:          * <!-- end-user-doc -->
516:          *
517:          * @generated
518:          */
519:         @Override
520:         public void dispose() {
521:                 if (leafConditionItemProvider != null) {
522:                         leafConditionItemProvider.dispose();
523:                 }
524:                 if (orConditionItemProvider != null) {
525:                         orConditionItemProvider.dispose();
526:                 }
527:                 if (andConditionItemProvider != null) {
528:                         andConditionItemProvider.dispose();
529:                 }
530:                 if (showRuleItemProvider != null) {
531:                         showRuleItemProvider.dispose();
532:                 }
533:                 if (enableRuleItemProvider != null) {
534:                         enableRuleItemProvider.dispose();
535:                 }
536:                 if (iterateConditionItemProvider != null) {
537:                         iterateConditionItemProvider.dispose();
538:                 }
539:                 if (trueItemProvider != null) {
540:                         trueItemProvider.dispose();
541:                 }
542:                 if (falseItemProvider != null) {
543:                         falseItemProvider.dispose();
544:                 }
545:                 if (notConditionItemProvider != null) {
546:                         notConditionItemProvider.dispose();
547:                 }
548:                 if (isProxyConditionItemProvider != null) {
549:                         isProxyConditionItemProvider.dispose();
550:                 }
551:         }
552:
553:         /**
554:          * A child creation extender for the {@link VViewPackage}.
555:          * <!-- begin-user-doc -->
556:          * <!-- end-user-doc -->
557:          *
558:          * @generated
559:          */
560:         public static class ViewChildCreationExtender implements
561:                 IChildCreationExtender {
562:                 /**
563:                  * The switch for creating child descriptors specific to each extended class.
564:                  * <!-- begin-user-doc -->
565:                  * <!-- end-user-doc -->
566:                  *
567:                  * @generated
568:                  */
569:                 protected static class CreationSwitch extends ViewSwitch<Object> {
570:                         /**
571:                          * The child descriptors being populated.
572:                          * <!-- begin-user-doc -->
573:                          * <!-- end-user-doc -->
574:                          *
575:                          * @generated
576:                          */
577:                         protected List<Object> newChildDescriptors;
578:
579:                         /**
580:                          * The domain in which to create the children.
581:                          * <!-- begin-user-doc -->
582:                          * <!-- end-user-doc -->
583:                          *
584:                          * @generated
585:                          */
586:                         protected EditingDomain editingDomain;
587:
588:                         /**
589:                          * Creates the a switch for populating child descriptors in the given domain.
590:                          * <!-- begin-user-doc -->
591:                          * <!-- end-user-doc -->
592:                          *
593:                          * @generated
594:                          */
595:                         CreationSwitch(List<Object> newChildDescriptors,
596:                                 EditingDomain editingDomain) {
597:                                 this.newChildDescriptors = newChildDescriptors;
598:                                 this.editingDomain = editingDomain;
599:                         }
600:
601:                         /**
602:                          * <!-- begin-user-doc -->
603:                          * <!-- end-user-doc -->
604:                          *
605:                          * @generated
606:                          */
607:                         @Override
608:                         public Object caseElement(VElement object) {
609:                                 newChildDescriptors.add(createChildParameter(VViewPackage.Literals.ELEMENT__ATTACHMENTS,
610:                                         RuleFactory.eINSTANCE.createShowRule()));
611:
612:                                 newChildDescriptors.add(createChildParameter(VViewPackage.Literals.ELEMENT__ATTACHMENTS,
613:                                         RuleFactory.eINSTANCE.createEnableRule()));
614:
615:                                 return null;
616:                         }
617:
618:                         /**
619:                          * <!-- begin-user-doc -->
620:                          * <!-- end-user-doc -->
621:                          *
622:                          * @generated
623:                          */
624:                         protected CommandParameter createChildParameter(Object feature,
625:                                 Object child) {
626:                                 return new CommandParameter(null, feature, child);
627:                         }
628:
629:                 }
630:
631:                 /**
632:                  * <!-- begin-user-doc -->
633:                  * <!-- end-user-doc -->
634:                  *
635:                  * @generated
636:                  */
637:                 @Override
638:                 public Collection<Object> getNewChildDescriptors(Object object,
639:                         EditingDomain editingDomain) {
640:                         final ArrayList<Object> result = new ArrayList<>();
641:                         new CreationSwitch(result, editingDomain).doSwitch((EObject) object);
642:                         return result;
643:                 }
644:
645:                 /**
646:                  * <!-- begin-user-doc -->
647:                  * <!-- end-user-doc -->
648:                  *
649:                  * @generated
650:                  */
651:                 @Override
652:                 public ResourceLocator getResourceLocator() {
653:                         return RuleEditPlugin.INSTANCE;
654:                 }
655:         }
656:
657: }