| |
| <% |
| /** |
| * Copyright (c) 2002-2010 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM - Initial API and implementation |
| */ |
| %> |
| <%GenPackage genPackage = (GenPackage)argument; GenModel genModel=genPackage.getGenModel(); /* Trick to import java.util.* without warnings */Iterator.class.getName();%> |
| <%@ egf:patternCall patternId="platform:/plugin/org.eclipse.egf.emf.pattern.base/egf/EMF_Pattern_Base.fcore#LogicalName=org.eclipse.egf.emf.pattern.base.HeaderJava" args="parameter:argument"%> |
| package <%=genPackage.getProviderPackageName()%>; |
| |
| <%genModel.addImport("org.eclipse.emf.common.notify.Adapter");%> |
| <%genModel.addImport("org.eclipse.emf.common.notify.Notification");%> |
| <%genModel.addImport("org.eclipse.emf.common.notify.Notifier");%> |
| <%genModel.addImport("org.eclipse.emf.edit.provider.ChangeNotifier");%> |
| <%genModel.addImport("org.eclipse.emf.edit.provider.ComposeableAdapterFactory");%> |
| <%genModel.addImport("org.eclipse.emf.edit.provider.ComposedAdapterFactory");%> |
| <%genModel.addImport("org.eclipse.emf.edit.provider.IChangeNotifier");%> |
| <%genModel.addImport("org.eclipse.emf.edit.provider.IEditingDomainItemProvider");%> |
| <%genModel.addImport("org.eclipse.emf.edit.provider.IItemLabelProvider");%> |
| <%genModel.addImport("org.eclipse.emf.edit.provider.IItemPropertySource");%> |
| <%genModel.addImport("org.eclipse.emf.edit.provider.INotifyChangedListener");%> |
| <%genModel.addImport("org.eclipse.emf.edit.provider.IStructuredItemContentProvider");%> |
| <%genModel.addImport("org.eclipse.emf.edit.provider.ITreeItemContentProvider");%> |
| <%boolean useGenerics = genModel.useGenerics();%> |
| <%String _ArrayList = genModel.getImportedName(useGenerics ? "java.util.ArrayList<java.lang.Object>" : "java.util.ArrayList");%> |
| <%String _Collection = genModel.getImportedName(useGenerics ? "java.util.Collection<java.lang.Object>" : "java.util.Collection");%> |
| <%genModel.markImportLocation(stringBuffer);%> |
| |
| /** |
| * This is the factory that is used to provide the interfaces needed to support Viewers. |
| * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}. |
| * The adapters also support Eclipse property sheets. |
| * Note that most of the adapters are shared among multiple instances. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public class <%=genPackage.getItemProviderAdapterFactoryClassName()%> extends <%=genPackage.getImportedAdapterFactoryClassName()%> implements ComposeableAdapterFactory, IChangeNotifier<%if (genPackage.isDisposableProviderFactory()) {%>, <%=genModel.getImportedName("org.eclipse.emf.edit.provider.IDisposable")%><%}%><%if (genPackage.isExtensibleProviderFactory()) {%>, <%=genModel.getImportedName("org.eclipse.emf.edit.provider.IChildCreationExtender")%><%}%> |
| { |
| <%if (genModel.hasCopyrightField()) {%> |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public static final <%=genModel.getImportedName("java.lang.String")%> copyright = <%=genModel.getCopyrightFieldLiteral()%>;<%=genModel.getNonNLS()%> |
| |
| <%}%> |
| /** |
| * This keeps track of the root adapter factory that delegates to this adapter factory. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected ComposedAdapterFactory parentAdapterFactory; |
| |
| /** |
| * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected IChangeNotifier changeNotifier = new ChangeNotifier(); |
| |
| <%if (genPackage.isDisposableProviderFactory() && genPackage.hasStatefulProvider()) {%> |
| /** |
| * This keeps track of all the item providers created, so that they can be {@link #dispose disposed}. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=genModel.getImportedName("org.eclipse.emf.edit.provider.Disposable")%> disposable = new Disposable(); |
| |
| <%}%> |
| <%if (genPackage.isExtensibleProviderFactory()) {%> |
| /** |
| * This helps manage the child creation extenders. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=genModel.getImportedName("org.eclipse.emf.edit.provider.ChildCreationExtenderManager")%> childCreationExtenderManager = new <%=genModel.getImportedName("org.eclipse.emf.edit.provider.ChildCreationExtenderManager")%>(<%=genPackage.getImportedEditPluginClassName()%>.INSTANCE, <%=genPackage.getImportedPackageInterfaceName()%>.eNS_URI); |
| |
| <%}%> |
| /** |
| * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=_Collection%> supportedTypes = new <%=_ArrayList%>(); |
| |
| /** |
| * This constructs an instance. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public <%=genPackage.getItemProviderAdapterFactoryClassName()%>() |
| { |
| <%for (String name : genPackage.getProviderSupportedTypes()) {%> |
| supportedTypes.add(<%=genModel.getImportedName(name)%>.class); |
| <%}%> |
| } |
| |
| <%for (GenPackage genDelegate : genPackage.getAdapterDelegatePackages()) {%> |
| /** |
| * This keeps track of the factory to which to delegate adapter creation for objects from that package. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=genDelegate.getImportedAdapterFactoryClassName()%> <%=genPackage.getUncapAdapterFactoryDelegateName(genDelegate)%> = null; |
| |
| /** |
| * This determines the delegate factory for the package. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=genDelegate.getImportedAdapterFactoryClassName()%> get<%=genPackage.getAdapterFactoryDelegateName(genDelegate)%>() |
| { |
| if (<%=genPackage.getUncapAdapterFactoryDelegateName(genDelegate)%> == null) |
| { |
| <%=genModel.getImportedName("org.eclipse.emf.common.notify.AdapterFactory")%> rootAdapterFactory = getRootAdapterFactory(); |
| if (rootAdapterFactory instanceof ComposedAdapterFactory) |
| { |
| <%=genModel.getImportedName("org.eclipse.emf.common.notify.AdapterFactory")%> delegateAdapterFactory = |
| ((ComposedAdapterFactory)rootAdapterFactory).getFactoryForType(<%=genDelegate.getImportedAdapterFactoryClassName()%>.getPackage()); |
| if (delegateAdapterFactory instanceof <%=genDelegate.getImportedAdapterFactoryClassName()%>) |
| { |
| <%=genPackage.getUncapAdapterFactoryDelegateName(genDelegate)%> = (<%=genDelegate.getImportedAdapterFactoryClassName()%>)delegateAdapterFactory; |
| } |
| } |
| } |
| return <%=genPackage.getUncapAdapterFactoryDelegateName(genDelegate)%>; |
| } |
| |
| <%}%> |
| <%for (GenClass genClass : genPackage.getGenClasses()) {%> |
| <%if (!genClass.isAbstract() && genClass.getProvider() != GenProviderKind.NONE_LITERAL) {%> |
| <%if (genClass.isProviderSingleton()) {%> |
| /** |
| * This keeps track of the one adapter used for all {@link <%=genClass.getQualifiedInterfaceName()%>} instances. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=genClass.getProviderClassName()%> <%=genClass.getUncapName()%>ItemProvider; |
| |
| /** |
| * This creates an adapter for a {@link <%=genClass.getQualifiedInterfaceName()%>}. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| <%if (genModel.useClassOverrideAnnotation()) {%> |
| @Override |
| <%}%> |
| public Adapter create<%=genClass.getName()%>Adapter() |
| { |
| if (<%=genClass.getUncapName()%>ItemProvider == null) |
| { |
| <%=genClass.getUncapName()%>ItemProvider = new <%=genClass.getProviderClassName()%>(this); |
| } |
| |
| return <%=genClass.getUncapName()%>ItemProvider; |
| } |
| |
| <%} else {%> |
| /** |
| * This creates an adapter for a {@link <%=genClass.getQualifiedInterfaceName()%>}. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| <%if (genModel.useClassOverrideAnnotation()) {%> |
| @Override |
| <%}%> |
| public Adapter create<%=genClass.getName()%>Adapter() |
| { |
| return new <%=genClass.getProviderClassName()%>(this); |
| } |
| |
| <%}%> |
| <%}%> |
| <%}%> |
| <%for (GenClass genClass : genPackage.getAdapterDelegateSuperClasses()) {%> |
| /** |
| * <%=genClass.getName()%> of <%=genClass.getItemProviderAdapterFactoryClassName()%> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public Adapter create<%=genClass.getName()%>Adapter() |
| { |
| return |
| get<%=genClass.getItemProviderAdapterFactoryClassName()%>() == null ? |
| null : |
| get<%=genClass.getItemProviderAdapterFactoryClassName()%>().create<%=genClass.getName()%>Adapter(); |
| } |
| |
| <%}%> |
| /** |
| * This returns the root adapter factory that contains this factory. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public ComposeableAdapterFactory getRootAdapterFactory() |
| { |
| return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory(); |
| } |
| |
| /** |
| * This sets the composed adapter factory that contains this factory. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) |
| { |
| this.parentAdapterFactory = parentAdapterFactory; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| <%if (genModel.useClassOverrideAnnotation()) {%> |
| @Override |
| <%}%> |
| public boolean isFactoryForType(Object type) |
| { |
| return supportedTypes.contains(type) || super.isFactoryForType(type); |
| } |
| |
| /** |
| * This implementation substitutes the factory itself as the key for the adapter. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| <%if (genModel.useClassOverrideAnnotation()) {%> |
| @Override |
| <%}%> |
| public Adapter adapt(Notifier notifier, Object type) |
| { |
| return super.adapt(notifier, this); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| <%if (genModel.useClassOverrideAnnotation()) {%> |
| @Override |
| <%}%> |
| public Object adapt(Object object, Object type) |
| { |
| if (isFactoryForType(type)) |
| { |
| Object adapter = super.adapt(object, type); |
| if (!(type instanceof Class<%if (genModel.useGenerics()) {%><?><%}%>) || <%if (genModel.getRuntimePlatform() == GenRuntimePlatform.GWT) {%><%=genModel.getImportedName("org.eclipse.emf.common.util.Reflect")%>.isInstance((Class<%if (genModel.useGenerics()) {%><?><%}%>)type, adapter)<%} else {%>(((Class<%if (genModel.useGenerics()) {%><?><%}%>)type).isInstance(adapter))<%}%>) |
| { |
| return adapter; |
| } |
| } |
| |
| return null; |
| } |
| |
| <%if (genPackage.isDisposableProviderFactory() && genPackage.hasStatefulProvider()) {%> |
| /** |
| * Associates an adapter with a notifier via the base implementation, then records it to ensure it will be disposed. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| <%if (genModel.useClassOverrideAnnotation()) {%> |
| @Override |
| <%}%> |
| protected void associate(Adapter adapter, Notifier target) |
| { |
| super.associate(adapter, target); |
| if (adapter != null) |
| { |
| disposable.add(adapter); |
| } |
| } |
| |
| <%}%> |
| <%if (genPackage.isExtensibleProviderFactory()) {%> |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public <%=genModel.getImportedName(useGenerics ? "java.util.List<org.eclipse.emf.edit.provider.IChildCreationExtender>" : "java.util.List")%> getChildCreationExtenders() |
| { |
| return childCreationExtenderManager.getChildCreationExtenders(); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public <%=genModel.getImportedName(useGenerics ? "java.util.Collection<?>" : "java.util.Collection")%> getNewChildDescriptors(Object object, <%=genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")%> editingDomain) |
| { |
| return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public <%=genModel.getImportedName("org.eclipse.emf.common.util.ResourceLocator")%> getResourceLocator() |
| { |
| return childCreationExtenderManager; |
| } |
| |
| <%}%> |
| /** |
| * This adds a listener. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void addListener(INotifyChangedListener notifyChangedListener) |
| { |
| changeNotifier.addListener(notifyChangedListener); |
| } |
| |
| /** |
| * This removes a listener. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void removeListener(INotifyChangedListener notifyChangedListener) |
| { |
| changeNotifier.removeListener(notifyChangedListener); |
| } |
| |
| /** |
| * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void fireNotifyChanged(Notification notification) |
| { |
| changeNotifier.fireNotifyChanged(notification); |
| |
| if (parentAdapterFactory != null) |
| { |
| parentAdapterFactory.fireNotifyChanged(notification); |
| } |
| } |
| |
| <%if (genPackage.isDisposableProviderFactory()) {%> |
| /** |
| * This disposes all of the item providers created by this factory. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void dispose() |
| { |
| <%if (genPackage.hasStatefulProvider()) {%> |
| disposable.dispose(); |
| <%} else {%> |
| <%for (GenClass genClass : genPackage.getGenClasses()) {%> |
| <%if (!genClass.isAbstract() && genClass.isProviderSingleton()) {%> |
| if (<%=genClass.getUncapName()%>ItemProvider != null) <%=genClass.getUncapName()%>ItemProvider.dispose(); |
| <%}%> |
| <%}%> |
| <%}%> |
| } |
| |
| <%}%> |
| <%if (genPackage.isChildCreationExtenders()) {%> |
| <%for (Map.Entry<GenPackage, Map<GenClass, List<GenClass.ChildCreationData>>> packageEntry : genPackage.getExtendedChildCreationData().entrySet()) {%> |
| /** |
| * A child creation extender for the {@link <%=packageEntry.getKey().getImportedPackageInterfaceName()%>}. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public static class <%=genPackage.getChildCreationExtenderName(packageEntry.getKey())%> implements <%=genModel.getImportedName("org.eclipse.emf.edit.provider.IChildCreationExtender")%> |
| { |
| /** |
| * The switch for creating child descriptors specific to each extended class. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected static class CreationSwitch extends <%=genModel.getImportedName(packageEntry.getKey().getQualifiedSwitchClassName())%><%=useGenerics ? "<Object>" : ""%> |
| { |
| /** |
| * The child descriptors being populated. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=genModel.getImportedName(useGenerics ? "java.util.List<Object>" : "java.util.List")%> newChildDescriptors; |
| |
| /** |
| * The domain in which to create the children. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")%> editingDomain; |
| |
| /** |
| * Creates the a switch for populating child descriptors in the given domain. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| CreationSwitch(<%=genModel.getImportedName(useGenerics ? "java.util.List<Object>" : "java.util.List")%> newChildDescriptors, <%=genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")%> editingDomain) |
| { |
| this.newChildDescriptors = newChildDescriptors; |
| this.editingDomain = editingDomain; |
| } |
| <%for (Map.Entry<GenClass, List<GenClass.ChildCreationData>> classEntry : packageEntry.getValue().entrySet()) { GenClass genClass = classEntry.getKey();%> |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| <%if (genModel.useClassOverrideAnnotation()) {%> |
| @Override |
| <%}%> |
| public <%=genClass.getTypeParameters()%>Object case<%=genPackage.getClassUniqueName(genClass)%>(<%=genClass.getImportedInterfaceName()%><%=genClass.getInterfaceTypeArguments()%> object) |
| { |
| <%for (GenClass.ChildCreationData childCreationData : classEntry.getValue()) { GenFeature createFeature = childCreationData.createFeature; GenFeature delegatedFeature = childCreationData.delegatedFeature; GenClassifier createClassifier = childCreationData.createClassifier;%> |
| <%if (createFeature.isFeatureMapType()) {%> |
| <%if (delegatedFeature.isReferenceType()) { GenClass createClass = (GenClass)createClassifier;%> |
| <%@ egf:patternCall patternId="platform:/plugin/org.eclipse.egf.emf.pattern/egf/EMF_Pattern.fcore#LogicalName=org.eclipse.egf.emf.pattern.edit.call.ItemProvider.ItemProvider.newChildDescriptorsReferenceDelegatedFeature.override" args="createClass:createClass,createFeature:createFeature,delegatedFeature:delegatedFeature,createClassifier:createClassifier,childCreationData:childCreationData,genClass:genClass,genPackage:genPackage,genModel:genModel"%><%//ItemProvider/newChildDescriptorsReferenceDelegatedFeature.override.javajetinc%> |
| <%} else { GenDataType createDataType = (GenDataType)createClassifier;%> |
| <%@ egf:patternCall patternId="platform:/plugin/org.eclipse.egf.emf.pattern/egf/EMF_Pattern.fcore#LogicalName=org.eclipse.egf.emf.pattern.edit.call.ItemProvider.ItemProvider.newChildDescriptorsAttributeDelegatedFeature.override" args="createDataType:createDataType,createFeature:createFeature,delegatedFeature:delegatedFeature,createClassifier:createClassifier,childCreationData:childCreationData,genClass:genClass,genPackage:genPackage,genModel:genModel"%><%//ItemProvider/newChildDescriptorsAttributeDelegatedFeature.override.javajetinc%> |
| <%}%> |
| <%} else if (createFeature.isReferenceType()) { GenClass createClass = (GenClass)createClassifier;%> |
| <%@ egf:patternCall patternId="platform:/plugin/org.eclipse.egf.emf.pattern/egf/EMF_Pattern.fcore#LogicalName=org.eclipse.egf.emf.pattern.edit.call.ItemProvider.ItemProvider.newChildDescriptorsReferenceFeature.override" args="createClass:createClass,createFeature:createFeature,delegatedFeature:delegatedFeature,createClassifier:createClassifier,childCreationData:childCreationData,genClass:genClass,genPackage:genPackage,genModel:genModel"%><%//ItemProvider/newChildDescriptorsReferenceFeature.override.javajetinc %> |
| <%} else { GenDataType createDataType = (GenDataType)createClassifier;%> |
| <%@ egf:patternCall patternId="platform:/plugin/org.eclipse.egf.emf.pattern/egf/EMF_Pattern.fcore#LogicalName=org.eclipse.egf.emf.pattern.edit.call.ItemProvider.ItemProvider.newChildDescriptorsAttributeFeature.override" args="createDataType:createDataType,createFeature:createFeature,delegatedFeature:delegatedFeature,createClassifier:createClassifier,childCreationData:childCreationData,genClass:genClass,genPackage:genPackage,genModel:genModel"%><%//ItemProvider/newChildDescriptorsAttributeFeature.override.javajetinc%> |
| <%}%> |
| |
| <%}%> |
| return null; |
| } |
| |
| <%}%> |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=genModel.getImportedName("org.eclipse.emf.edit.command.CommandParameter")%> createChildParameter(Object feature, Object child) |
| { |
| return new <%=genModel.getImportedName("org.eclipse.emf.edit.command.CommandParameter")%>(null, feature, child); |
| } |
| |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public <%=_Collection%> getNewChildDescriptors(Object object, <%=genModel.getImportedName("org.eclipse.emf.edit.domain.EditingDomain")%> editingDomain) |
| { |
| <%=_ArrayList%> result = new <%=_ArrayList%>(); |
| new CreationSwitch(result, editingDomain).doSwitch((<%=genModel.getImportedName("org.eclipse.emf.ecore.EObject")%>)object); |
| return result; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public <%=genModel.getImportedName("org.eclipse.emf.common.util.ResourceLocator")%> getResourceLocator() |
| { |
| return <%=genPackage.getImportedEditPluginClassName()%>.INSTANCE; |
| } |
| } |
| |
| <%}%> |
| <%}%> |
| } |
| <%genModel.emitSortedImports();%> |