blob: 8e262636b2b1aab7f3e6904ff5a3488c70095e11 [file] [log] [blame]
/*******************************************************************************
* 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