/******************************************************************************* * Copyright (c) 2005 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 Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.bpel.common.extension.model.impl; import java.util.Iterator; import org.eclipse.bpel.common.extension.model.Extension; import org.eclipse.bpel.common.extension.model.ExtensionMap; import org.eclipse.bpel.common.extension.model.ExtensionmodelFactory; import org.eclipse.bpel.common.extension.model.ExtensionmodelPackage; import org.eclipse.bpel.common.extension.model.adapters.ExtendedObjectUserAdapter; import org.eclipse.bpel.common.extension.model.adapters.impl.ExtensionMapAdapterImpl; import org.eclipse.bpel.common.extension.model.util.ExtensionmodelAdapterFactory; import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.util.BasicEList; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.impl.EFactoryImpl; /** * <!-- begin-user-doc --> * An implementation of the model <b>Factory</b>. * <!-- end-user-doc --> * @generated */ public class ExtensionmodelFactoryImpl extends EFactoryImpl implements ExtensionmodelFactory { /** * Creates an instance of the factory. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ExtensionmodelFactoryImpl() { super(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public EObject create(EClass eClass) { switch (eClass.getClassifierID()) { case ExtensionmodelPackage.EXTENSION_MAP: return createExtensionMap(); case ExtensionmodelPackage.EXTENSION: return createExtension(); default: throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); } } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ExtensionMap createExtensionMapGen() { ExtensionMapImpl extensionMap = new ExtensionMapImpl(); return extensionMap; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Extension createExtension() { ExtensionImpl extension = new ExtensionImpl(); return extension; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ExtensionmodelPackage getExtensionmodelPackage() { return (ExtensionmodelPackage)getEPackage(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @deprecated * @generated */ @Deprecated public static ExtensionmodelPackage getPackage() { return ExtensionmodelPackage.eINSTANCE; } /** * Method findExtensionSet. * Given a namespace and the contents of a Resource (as an EList), this * method will find the ExtensionMap object for the given namespace. * <code>null</code> is returned if one doesn't exists * @param namespace - ExtensionMap namespace * @param contents - Resource contents * @return ExtensionMap * @customized */ public ExtensionMap findExtensionMap(String namespace, EList contents) { ExtensionMap extensionSet = null; for (Iterator iter = contents.iterator(); iter.hasNext();) { EObject element = (EObject) iter.next(); if(element instanceof ExtensionMap && ((ExtensionMap)element).getNamespace().equals(namespace)){ extensionSet = (ExtensionMap)element; } } if(extensionSet != null){ ExtensionmodelAdapterFactory adapterFactory = new ExtensionmodelAdapterFactory(); adapterFactory.adapt(extensionSet,ExtensionMapAdapterImpl.class); } return extensionSet; } /** * @customized */ public ExtensionMap createExtensionMap() { ExtensionMap extensionMap = createExtensionMapGen(); ExtensionmodelAdapterFactory adapterFactory = new ExtensionmodelAdapterFactory(); adapterFactory.adapt(extensionMap,ExtensionMapAdapterImpl.class); return extensionMap; } /** * Method createExtensionSet. * Creates an ExtensionMap object for the given namespace. * @param namespace * @return ExtensionMap * @customized */ public ExtensionMap createExtensionMap(String namespace) { ExtensionMap extensionSet = ExtensionmodelFactory.eINSTANCE.createExtensionMap(); extensionSet.setNamespace(namespace); return extensionSet; } /** * Method adaptEObject. * This method associates an adapter to a model object. * @param target - object to which the adaptor is to be associated * @param adapter - adapter to asociate to target * @customized */ public void adaptEObject(EObject target, Adapter adapter) { for (Iterator adapters = target.eAdapters().iterator(); adapters.hasNext(); ) { Adapter currAdapter = (Adapter)adapters.next(); if (currAdapter.equals(adapter)) { return; } } target.eAdapters().add(adapter); } /** * @see org.eclipse.bpel.common.extension.model.ExtensionmodelFactory#findExtensionSets(java.lang.String, org.eclipse.emf.common.util.EList) */ public EList findExtensionMaps(String namespace, EList contents) { EList extensionSetList = new BasicEList(); for (Iterator iter = contents.iterator(); iter.hasNext();) { EObject element = (EObject) iter.next(); if(element instanceof ExtensionMap && ((ExtensionMap)element).getNamespace().equals(namespace)){ extensionSetList.add(element); ExtensionmodelAdapterFactory adapterFactory = new ExtensionmodelAdapterFactory(); adapterFactory.adapt(element,ExtensionMapAdapterImpl.class); } } return extensionSetList; } public Adapter getExtensionAdapter(EObject extendedObject, String namespace) { EList adapterList = extendedObject.eAdapters(); for (Iterator iter = adapterList.iterator(); iter.hasNext();) { Adapter element = (Adapter) iter.next(); if(element instanceof ExtendedObjectUserAdapter && ((ExtendedObjectUserAdapter)element).getNamespace().equals(namespace)){ return element; } } return null; } } //ExtensionmodelFactoryImpl