| /******************************************************************************* |
| * Copyright (c) 2005 Oracle Corporation. |
| * 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: |
| * Ian Trimble - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl; |
| |
| import java.util.Collection; |
| import java.util.Iterator; |
| |
| import org.eclipse.emf.common.notify.Notification; |
| import org.eclipse.emf.common.notify.NotificationChain; |
| 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.InternalEObject; |
| import org.eclipse.emf.ecore.impl.ENotificationImpl; |
| import org.eclipse.emf.ecore.impl.EObjectImpl; |
| import org.eclipse.emf.ecore.util.EObjectContainmentEList; |
| import org.eclipse.emf.ecore.util.InternalEList; |
| import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary; |
| import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry; |
| import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage; |
| import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary; |
| |
| /** |
| * <!-- begin-user-doc --> |
| * An implementation of the model object '<em><b>JSF Library Registry</b></em>'. |
| * <!-- end-user-doc --> |
| * <p> |
| * The following features are implemented: |
| * <ul> |
| * <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryRegistryImpl#getDefaultImplementationID <em>Default Implementation ID</em>}</li> |
| * <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryRegistryImpl#getJSFLibraries <em>JSF Libraries</em>}</li> |
| * <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryRegistryImpl#getPluginProvidedJSFLibraries <em>Plugin Provided JSF Libraries</em>}</li> |
| * </ul> |
| * </p> |
| * |
| * @generated |
| * @deprecated |
| */ |
| public class JSFLibraryRegistryImpl extends EObjectImpl implements JSFLibraryRegistry { |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public static final String copyright = "Copyright (c) 2005 Oracle Corporation"; //$NON-NLS-1$ |
| |
| /** |
| * The default value of the '{@link #getDefaultImplementationID() <em>Default Implementation ID</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getDefaultImplementationID() |
| * @generated |
| * @ordered |
| */ |
| protected static final String DEFAULT_IMPLEMENTATION_ID_EDEFAULT = ""; //$NON-NLS-1$ |
| |
| /** |
| * The cached value of the '{@link #getDefaultImplementationID() <em>Default Implementation ID</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getDefaultImplementationID() |
| * @generated |
| * @ordered |
| */ |
| protected String defaultImplementationID = DEFAULT_IMPLEMENTATION_ID_EDEFAULT; |
| |
| /** |
| * The cached value of the '{@link #getJSFLibraries() <em>JSF Libraries</em>}' containment reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getJSFLibraries() |
| * @generated |
| * @ordered |
| */ |
| protected EList jsfLibraries; |
| |
| /** |
| * The cached value of the '{@link #getPluginProvidedJSFLibraries() <em>Plugin Provided JSF Libraries</em>}' containment reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getPluginProvidedJSFLibraries() |
| * @generated |
| * @ordered |
| */ |
| protected EList pluginProvidedJSFLibraries; |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected JSFLibraryRegistryImpl() { |
| super(); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * @return the static eClass |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected EClass eStaticClass() { |
| return JSFLibraryRegistryPackage.Literals.JSF_LIBRARY_REGISTRY; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * @return the default implementation id |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public String getDefaultImplementationID() { |
| return defaultImplementationID; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * @param newDefaultImplementationID |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void setDefaultImplementationID(String newDefaultImplementationID) { |
| String oldDefaultImplementationID = defaultImplementationID; |
| defaultImplementationID = newDefaultImplementationID; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__DEFAULT_IMPLEMENTATION_ID, oldDefaultImplementationID, defaultImplementationID)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * @return the list of jsf libraries |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public EList getJSFLibraries() { |
| if (jsfLibraries == null) { |
| jsfLibraries = new EObjectContainmentEList(JSFLibrary.class, this, JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__JSF_LIBRARIES); |
| } |
| return jsfLibraries; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * @return the list of plugin provided JSF libraries |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public EList getPluginProvidedJSFLibraries() { |
| if (pluginProvidedJSFLibraries == null) { |
| pluginProvidedJSFLibraries = new EObjectContainmentEList(PluginProvidedJSFLibrary.class, this, JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__PLUGIN_PROVIDED_JSF_LIBRARIES); |
| } |
| return pluginProvidedJSFLibraries; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * @return the default implemention JSF library |
| * <!-- end-user-doc --> |
| * @generated NOT |
| */ |
| public JSFLibrary getDefaultImplementation() { |
| return getJSFLibraryByID(getDefaultImplementationID()); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * @param implementation |
| * <!-- end-user-doc --> |
| * @generated NOT |
| */ |
| public void setDefaultImplementation(JSFLibrary implementation) { |
| if (implementation != null) { |
| setDefaultImplementationID(implementation.getID()); |
| } else { |
| setDefaultImplementationID(null); |
| } |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { |
| switch (featureID) { |
| case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__JSF_LIBRARIES: |
| return ((InternalEList)getJSFLibraries()).basicRemove(otherEnd, msgs); |
| case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__PLUGIN_PROVIDED_JSF_LIBRARIES: |
| return ((InternalEList)getPluginProvidedJSFLibraries()).basicRemove(otherEnd, msgs); |
| } |
| return super.eInverseRemove(otherEnd, featureID, msgs); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public Object eGet(int featureID, boolean resolve, boolean coreType) { |
| switch (featureID) { |
| case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__DEFAULT_IMPLEMENTATION_ID: |
| return getDefaultImplementationID(); |
| case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__JSF_LIBRARIES: |
| return getJSFLibraries(); |
| case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__PLUGIN_PROVIDED_JSF_LIBRARIES: |
| return getPluginProvidedJSFLibraries(); |
| } |
| return super.eGet(featureID, resolve, coreType); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void eSet(int featureID, Object newValue) { |
| switch (featureID) { |
| case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__DEFAULT_IMPLEMENTATION_ID: |
| setDefaultImplementationID((String)newValue); |
| return; |
| case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__JSF_LIBRARIES: |
| getJSFLibraries().clear(); |
| getJSFLibraries().addAll((Collection)newValue); |
| return; |
| case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__PLUGIN_PROVIDED_JSF_LIBRARIES: |
| getPluginProvidedJSFLibraries().clear(); |
| getPluginProvidedJSFLibraries().addAll((Collection)newValue); |
| return; |
| } |
| super.eSet(featureID, newValue); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void eUnset(int featureID) { |
| switch (featureID) { |
| case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__DEFAULT_IMPLEMENTATION_ID: |
| setDefaultImplementationID(DEFAULT_IMPLEMENTATION_ID_EDEFAULT); |
| return; |
| case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__JSF_LIBRARIES: |
| getJSFLibraries().clear(); |
| return; |
| case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__PLUGIN_PROVIDED_JSF_LIBRARIES: |
| getPluginProvidedJSFLibraries().clear(); |
| return; |
| } |
| super.eUnset(featureID); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public boolean eIsSet(int featureID) { |
| switch (featureID) { |
| case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__DEFAULT_IMPLEMENTATION_ID: |
| return DEFAULT_IMPLEMENTATION_ID_EDEFAULT == null ? defaultImplementationID != null : !DEFAULT_IMPLEMENTATION_ID_EDEFAULT.equals(defaultImplementationID); |
| case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__JSF_LIBRARIES: |
| return jsfLibraries != null && !jsfLibraries.isEmpty(); |
| case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__PLUGIN_PROVIDED_JSF_LIBRARIES: |
| return pluginProvidedJSFLibraries != null && !pluginProvidedJSFLibraries.isEmpty(); |
| } |
| return super.eIsSet(featureID); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * @param ID |
| * @return the jsf library of ID or null if none |
| * <!-- end-user-doc --> |
| * @generated NOT |
| */ |
| public JSFLibrary getJSFLibraryByID(String ID) { |
| JSFLibrary library = null; |
| if (ID != null) { |
| Iterator itLibs = getAllJSFLibraries().iterator(); |
| while (itLibs.hasNext()) { |
| JSFLibrary curLib = (JSFLibrary)itLibs.next(); |
| if (ID.equals(curLib.getID())) { |
| library = curLib; |
| break; |
| } |
| } |
| } |
| return library; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * @param name |
| * @return the list of libraries named 'name' |
| * <!-- end-user-doc --> |
| * @generated NOT |
| */ |
| public EList getJSFLibrariesByName(String name) { |
| EList libraries = new BasicEList(); |
| if (name != null) { |
| Iterator itLibs = getAllJSFLibraries().iterator(); |
| while(itLibs.hasNext()) { |
| JSFLibrary curLib = (JSFLibrary)itLibs.next(); |
| if (name.equals(curLib.getName())) { |
| libraries.add(curLib); |
| } |
| } |
| } |
| return libraries; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * This is a convenience method to return an EList of JSFLibrary instances |
| * that are marked as JSF implementations; while all instances are valid |
| * references, the returned EList should not be used for additions and/or |
| * removals of instances (use the EList returned by getJSFLibraries()). |
| * @return the list of implemention jsf libraries |
| * <!-- end-user-doc --> |
| * @generated NOT |
| */ |
| public EList getImplJSFLibraries() { |
| EList implementations = new BasicEList(); |
| Iterator itLibs = getAllJSFLibraries().iterator(); |
| while (itLibs.hasNext()) { |
| JSFLibrary lib = (JSFLibrary)itLibs.next(); |
| if (lib.isImplementation()) { |
| implementations.add(lib); |
| } |
| } |
| return implementations; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * This is a convenience method to return an EList of JSFLibrary instances |
| * that are not marked as JSF implementations; while all instances are |
| * valid references, the returned EList should not be used for additions |
| * and/or removals of instances (use the EList returned by |
| * getJSFLibraries()). |
| * @return the non-implemention JSF libraries |
| * <!-- end-user-doc --> |
| * @generated NOT |
| */ |
| public EList getNonImplJSFLibraries() { |
| EList nonImplementations = new BasicEList(); |
| Iterator itLibs = getAllJSFLibraries().iterator(); |
| while (itLibs.hasNext()) { |
| JSFLibrary lib = (JSFLibrary)itLibs.next(); |
| if (!lib.isImplementation()) { |
| nonImplementations.add(lib); |
| } |
| } |
| return nonImplementations; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * This is a convenience method to return an EList of JSFLibrary instances |
| * and PluginProvidedJSFLibrary instances; while all instances are valid |
| * references, the returned EList should not be used for additions and/or |
| * removals of instances (use the EList returned by getJSFLibraries()). |
| * @return all JSF libraries |
| * <!-- end-user-doc --> |
| * @generated NOT |
| */ |
| public EList getAllJSFLibraries() { |
| EList allLibs = new BasicEList(); |
| allLibs.addAll(getJSFLibraries()); |
| allLibs.addAll(getPluginProvidedJSFLibraries()); |
| return allLibs; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * @param library |
| * @return true if library is successfully added |
| * <!-- end-user-doc --> |
| * @generated NOT |
| */ |
| public boolean addJSFLibrary(JSFLibrary library) { |
| boolean added = false; |
| if (library instanceof PluginProvidedJSFLibrary) { |
| added = getPluginProvidedJSFLibraries().add(library); |
| } else { |
| added = getJSFLibraries().add(library); |
| } |
| return added; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * @param library |
| * @return true if library is successfully removed |
| * <!-- end-user-doc --> |
| * @generated NOT |
| */ |
| public boolean removeJSFLibrary(JSFLibrary library) { |
| boolean removed = false; |
| if (library instanceof PluginProvidedJSFLibrary) { |
| removed = getPluginProvidedJSFLibraries().remove(library); |
| } else { |
| removed = getJSFLibraries().remove(library); |
| } |
| return removed; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * @return the string representation |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public String toString() { |
| if (eIsProxy()) return super.toString(); |
| |
| StringBuffer result = new StringBuffer(super.toString()); |
| result.append(" (DefaultImplementationID: "); //$NON-NLS-1$ |
| result.append(defaultImplementationID); |
| result.append(')'); |
| return result.toString(); |
| } |
| |
| |
| } //JSFLibraryRegistryImpl |