Skip to content

Package: DomainmodelreferenceItemProviderAdapterFactory$TemplateChildCreationExtender$CreationSwitch

DomainmodelreferenceItemProviderAdapterFactory$TemplateChildCreationExtender$CreationSwitch

nameinstructionbranchcomplexitylinemethod
DomainmodelreferenceItemProviderAdapterFactory.TemplateChildCreationExtender.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%
caseMultiStyleSelectorContainer(VTMultiStyleSelectorContainer)
M: 0 C: 11
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
caseStyleSelectorContainer(VTStyleSelectorContainer)
M: 0 C: 11
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
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-2014 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.template.selector.domainmodelreference.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.template.model.VTMultiStyleSelectorContainer;
26: import org.eclipse.emf.ecp.view.template.model.VTStyleSelectorContainer;
27: import org.eclipse.emf.ecp.view.template.model.VTTemplatePackage;
28: import org.eclipse.emf.ecp.view.template.model.util.TemplateSwitch;
29: import org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.VTDomainmodelreferenceFactory;
30: import org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.VTDomainmodelreferencePackage;
31: import org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.util.DomainmodelreferenceAdapterFactory;
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 DomainmodelreferenceItemProviderAdapterFactory extends DomainmodelreferenceAdapterFactory 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:                 DomainModelReferenceSelectorEditPlugin.INSTANCE, VTDomainmodelreferencePackage.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 DomainmodelreferenceItemProviderAdapterFactory() {
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.template.selector.domainmodelreference.model.VTDomainModelReferenceSelector}
116:          * instances.
117:          * <!-- begin-user-doc -->
118:          * <!-- end-user-doc -->
119:          *
120:          * @generated
121:          */
122:         protected DomainModelReferenceSelectorItemProvider domainModelReferenceSelectorItemProvider;
123:
124:         /**
125:          * This creates an adapter for a
126:          * {@link org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.VTDomainModelReferenceSelector}.
127:          * <!-- begin-user-doc -->
128:          * <!-- end-user-doc -->
129:          *
130:          * @generated
131:          */
132:         @Override
133:         public Adapter createDomainModelReferenceSelectorAdapter() {
134:                 if (domainModelReferenceSelectorItemProvider == null) {
135:                         domainModelReferenceSelectorItemProvider = new DomainModelReferenceSelectorItemProvider(this);
136:                 }
137:
138:                 return domainModelReferenceSelectorItemProvider;
139:         }
140:
141:         /**
142:          * This returns the root adapter factory that contains this factory.
143:          * <!-- begin-user-doc -->
144:          * <!-- end-user-doc -->
145:          *
146:          * @generated
147:          */
148:         @Override
149:         public ComposeableAdapterFactory getRootAdapterFactory() {
150:                 return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
151:         }
152:
153:         /**
154:          * This sets the composed adapter factory that contains this factory.
155:          * <!-- begin-user-doc -->
156:          * <!-- end-user-doc -->
157:          *
158:          * @generated
159:          */
160:         @Override
161:         public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
162:                 this.parentAdapterFactory = parentAdapterFactory;
163:         }
164:
165:         /**
166:          * <!-- begin-user-doc -->
167:          * <!-- end-user-doc -->
168:          *
169:          * @generated
170:          */
171:         @Override
172:         public boolean isFactoryForType(Object type) {
173:                 return supportedTypes.contains(type) || super.isFactoryForType(type);
174:         }
175:
176:         /**
177:          * This implementation substitutes the factory itself as the key for the adapter.
178:          * <!-- begin-user-doc -->
179:          * <!-- end-user-doc -->
180:          *
181:          * @generated
182:          */
183:         @Override
184:         public Adapter adapt(Notifier notifier, Object type) {
185:                 return super.adapt(notifier, this);
186:         }
187:
188:         /**
189:          * <!-- begin-user-doc -->
190:          * <!-- end-user-doc -->
191:          *
192:          * @generated
193:          */
194:         @Override
195:         public Object adapt(Object object, Object type) {
196:                 if (isFactoryForType(type)) {
197:                         final Object adapter = super.adapt(object, type);
198:                         if (!(type instanceof Class<?>) || ((Class<?>) type).isInstance(adapter)) {
199:                                 return adapter;
200:                         }
201:                 }
202:
203:                 return null;
204:         }
205:
206:         /**
207:          * <!-- begin-user-doc -->
208:          * <!-- end-user-doc -->
209:          *
210:          * @generated
211:          */
212:         public List<IChildCreationExtender> getChildCreationExtenders() {
213:                 return childCreationExtenderManager.getChildCreationExtenders();
214:         }
215:
216:         /**
217:          * <!-- begin-user-doc -->
218:          * <!-- end-user-doc -->
219:          *
220:          * @generated
221:          */
222:         @Override
223:         public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
224:                 return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
225:         }
226:
227:         /**
228:          * <!-- begin-user-doc -->
229:          * <!-- end-user-doc -->
230:          *
231:          * @generated
232:          */
233:         @Override
234:         public ResourceLocator getResourceLocator() {
235:                 return childCreationExtenderManager;
236:         }
237:
238:         /**
239:          * This adds a listener.
240:          * <!-- begin-user-doc -->
241:          * <!-- end-user-doc -->
242:          *
243:          * @generated
244:          */
245:         @Override
246:         public void addListener(INotifyChangedListener notifyChangedListener) {
247:                 changeNotifier.addListener(notifyChangedListener);
248:         }
249:
250:         /**
251:          * This removes a listener.
252:          * <!-- begin-user-doc -->
253:          * <!-- end-user-doc -->
254:          *
255:          * @generated
256:          */
257:         @Override
258:         public void removeListener(INotifyChangedListener notifyChangedListener) {
259:                 changeNotifier.removeListener(notifyChangedListener);
260:         }
261:
262:         /**
263:          * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
264:          * <!-- begin-user-doc -->
265:          * <!-- end-user-doc -->
266:          *
267:          * @generated
268:          */
269:         @Override
270:         public void fireNotifyChanged(Notification notification) {
271:                 changeNotifier.fireNotifyChanged(notification);
272:
273:                 if (parentAdapterFactory != null) {
274:                         parentAdapterFactory.fireNotifyChanged(notification);
275:                 }
276:         }
277:
278:         /**
279:          * This disposes all of the item providers created by this factory.
280:          * <!-- begin-user-doc -->
281:          * <!-- end-user-doc -->
282:          *
283:          * @generated
284:          */
285:         @Override
286:         public void dispose() {
287:                 if (domainModelReferenceSelectorItemProvider != null) {
288:                         domainModelReferenceSelectorItemProvider.dispose();
289:                 }
290:         }
291:
292:         /**
293:          * A child creation extender for the {@link VTTemplatePackage}.
294:          * <!-- begin-user-doc -->
295:          * <!-- end-user-doc -->
296:          *
297:          * @generated
298:          */
299:         public static class TemplateChildCreationExtender implements IChildCreationExtender {
300:                 /**
301:                  * The switch for creating child descriptors specific to each extended class.
302:                  * <!-- begin-user-doc -->
303:                  * <!-- end-user-doc -->
304:                  *
305:                  * @generated
306:                  */
307:                 protected static class CreationSwitch extends TemplateSwitch<Object> {
308:                         /**
309:                          * The child descriptors being populated.
310:                          * <!-- begin-user-doc -->
311:                          * <!-- end-user-doc -->
312:                          *
313:                          * @generated
314:                          */
315:                         protected List<Object> newChildDescriptors;
316:
317:                         /**
318:                          * The domain in which to create the children.
319:                          * <!-- begin-user-doc -->
320:                          * <!-- end-user-doc -->
321:                          *
322:                          * @generated
323:                          */
324:                         protected EditingDomain editingDomain;
325:
326:                         /**
327:                          * Creates the a switch for populating child descriptors in the given domain.
328:                          * <!-- begin-user-doc -->
329:                          * <!-- end-user-doc -->
330:                          *
331:                          * @generated
332:                          */
333:                         CreationSwitch(List<Object> newChildDescriptors, EditingDomain editingDomain) {
334:                                 this.newChildDescriptors = newChildDescriptors;
335:                                 this.editingDomain = editingDomain;
336:                         }
337:
338:                         /**
339:                          * <!-- begin-user-doc -->
340:                          * <!-- end-user-doc -->
341:                          *
342:                          * @generated
343:                          */
344:                         @Override
345:                         public Object caseStyleSelectorContainer(VTStyleSelectorContainer object) {
346:                                 newChildDescriptors
347:                                         .add(createChildParameter(VTTemplatePackage.Literals.STYLE_SELECTOR_CONTAINER__SELECTOR,
348:                                                 VTDomainmodelreferenceFactory.eINSTANCE.createDomainModelReferenceSelector()));
349:
350:                                 return null;
351:                         }
352:
353:                         /**
354:                          * <!-- begin-user-doc -->
355:                          * <!-- end-user-doc -->
356:                          *
357:                          * @generated
358:                          */
359:                         @Override
360:                         public Object caseMultiStyleSelectorContainer(VTMultiStyleSelectorContainer object) {
361:                                 newChildDescriptors
362:                                         .add(createChildParameter(VTTemplatePackage.Literals.MULTI_STYLE_SELECTOR_CONTAINER__SELECTORS,
363:                                                 VTDomainmodelreferenceFactory.eINSTANCE.createDomainModelReferenceSelector()));
364:
365:                                 return null;
366:                         }
367:
368:                         /**
369:                          * <!-- begin-user-doc -->
370:                          * <!-- end-user-doc -->
371:                          *
372:                          * @generated
373:                          */
374:                         protected CommandParameter createChildParameter(Object feature, Object child) {
375:                                 return new CommandParameter(null, feature, child);
376:                         }
377:
378:                 }
379:
380:                 /**
381:                  * <!-- begin-user-doc -->
382:                  * <!-- end-user-doc -->
383:                  *
384:                  * @generated
385:                  */
386:                 @Override
387:                 public Collection<Object> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
388:                         final ArrayList<Object> result = new ArrayList<>();
389:                         new CreationSwitch(result, editingDomain).doSwitch((EObject) object);
390:                         return result;
391:                 }
392:
393:                 /**
394:                  * <!-- begin-user-doc -->
395:                  * <!-- end-user-doc -->
396:                  *
397:                  * @generated
398:                  */
399:                 @Override
400:                 public ResourceLocator getResourceLocator() {
401:                         return DomainModelReferenceSelectorEditPlugin.INSTANCE;
402:                 }
403:         }
404:
405: }