/**
* Copyright (c) 2003-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
*/
package org.eclipse.emf.ecore.change.impl;
import java.util.Map;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.change.*;
import org.eclipse.emf.ecore.impl.EFactoryImpl;
import org.eclipse.emf.ecore.plugin.EcorePlugin;
import org.eclipse.emf.ecore.resource.Resource;
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Factory</b>.
* <!-- end-user-doc -->
* @generated
*/
public class ChangeFactoryImpl extends EFactoryImpl implements ChangeFactory
{
/**
* Creates the default factory implementation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static ChangeFactory init()
{
try
{
ChangeFactory theChangeFactory = (ChangeFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/emf/2003/Change");
if (theChangeFactory != null)
{
return theChangeFactory;
}
}
catch (Exception exception)
{
EcorePlugin.INSTANCE.log(exception);
}
return new ChangeFactoryImpl();
}
/**
* Creates an instance of the factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ChangeFactoryImpl()
{
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EObject create(EClass eClass)
{
switch (eClass.getClassifierID())
{
case ChangePackage.CHANGE_DESCRIPTION: return createChangeDescription();
case ChangePackage.EOBJECT_TO_CHANGES_MAP_ENTRY: return (EObject)createEObjectToChangesMapEntry();
case ChangePackage.FEATURE_CHANGE: return createFeatureChange();
case ChangePackage.LIST_CHANGE: return createListChange();
case ChangePackage.RESOURCE_CHANGE: return createResourceChange();
case ChangePackage.FEATURE_MAP_ENTRY: return createFeatureMapEntry();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object createFromString(EDataType eDataType, String initialValue)
{
switch (eDataType.getClassifierID())
{
case ChangePackage.CHANGE_KIND:
return createChangeKindFromString(eDataType, initialValue);
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String convertToString(EDataType eDataType, Object instanceValue)
{
switch (eDataType.getClassifierID())
{
case ChangePackage.CHANGE_KIND:
return convertChangeKindToString(eDataType, instanceValue);
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ChangeDescription createChangeDescription()
{
ChangeDescriptionImpl changeDescription = new ChangeDescriptionImpl();
return changeDescription;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Map.Entry<EObject, EList<FeatureChange>> createEObjectToChangesMapEntry()
{
EObjectToChangesMapEntryImpl eObjectToChangesMapEntry = new EObjectToChangesMapEntryImpl();
return eObjectToChangesMapEntry;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public FeatureChange createFeatureChange()
{
FeatureChangeImpl featureChange = new FeatureChangeImpl();
return featureChange;
}
public FeatureChange createFeatureChange(EStructuralFeature feature, Object oldValue, boolean oldIsSet)
{
FeatureChangeImpl featureChange = new FeatureChangeImpl(feature, oldValue, oldIsSet);
return featureChange;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ListChange createListChange()
{
ListChangeImpl listChange = new ListChangeImpl();
return listChange;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ResourceChange createResourceChange()
{
ResourceChangeImpl resourceChange = new ResourceChangeImpl();
return resourceChange;
}
public ResourceChange createResourceChange(Resource resource, EList<Object> oldValue)
{
ResourceChangeImpl resourceChange = new ResourceChangeImpl(resource, oldValue);
return resourceChange;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public FeatureMapEntry createFeatureMapEntry()
{
FeatureMapEntryImpl featureMapEntry = new FeatureMapEntryImpl();
return featureMapEntry;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ChangeKind createChangeKindFromString(EDataType eDataType, String initialValue)
{
ChangeKind result = ChangeKind.get(initialValue);
if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String convertChangeKindToString(EDataType eDataType, Object instanceValue)
{
return instanceValue == null ? null : instanceValue.toString();
}
public FeatureMapEntry createFeatureMapEntry(EStructuralFeature feature, Object value)
{
FeatureMapEntryImpl featureMapEntry = new FeatureMapEntryImpl(feature, value);
return featureMapEntry;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ChangePackage getChangePackage()
{
return (ChangePackage)getEPackage();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @deprecated
* @generated
*/
@Deprecated
public static ChangePackage getPackage()
{
return ChangePackage.eINSTANCE;
}
public Map.Entry<EObject, EList<FeatureChange>> createEObjectToChangesMapEntry(EObject eObject)
{
EObjectToChangesMapEntryImpl eObjectToChangesMapEntry = new EObjectToChangesMapEntryImpl();
eObjectToChangesMapEntry.setKey(eObject);
return eObjectToChangesMapEntry;
}
} //ChangeFactoryImpl