/**
* <copyright>
* </copyright>
*
* $Id$
*/
package org.yakindu.base.types.impl;
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.impl.EFactoryImpl;
import org.eclipse.emf.ecore.plugin.EcorePlugin;
import org.yakindu.base.types.Annotation;
import org.yakindu.base.types.AnnotationType;
import org.yakindu.base.types.ArrayTypeSpecifier;
import org.yakindu.base.types.ComplexType;
import org.yakindu.base.types.Direction;
import org.yakindu.base.types.Domain;
import org.yakindu.base.types.EnumerationType;
import org.yakindu.base.types.Enumerator;
import org.yakindu.base.types.Event;
import org.yakindu.base.types.GenericElement;
import org.yakindu.base.types.Operation;
import org.yakindu.base.types.PackageMember;
import org.yakindu.base.types.Parameter;
import org.yakindu.base.types.PrimitiveType;
import org.yakindu.base.types.Property;
import org.yakindu.base.types.RangeConstraint;
import org.yakindu.base.types.Type;
import org.yakindu.base.types.TypeAlias;
import org.yakindu.base.types.TypeConstraint;
import org.yakindu.base.types.TypeParameter;
import org.yakindu.base.types.TypeSpecifier;
import org.yakindu.base.types.TypesFactory;
import org.yakindu.base.types.TypesPackage;
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Factory</b>.
* <!-- end-user-doc -->
* @generated
*/
public class TypesFactoryImpl extends EFactoryImpl implements TypesFactory {
/**
* Creates the default factory implementation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static TypesFactory init() {
try {
TypesFactory theTypesFactory = (TypesFactory)EPackage.Registry.INSTANCE.getEFactory(TypesPackage.eNS_URI);
if (theTypesFactory != null) {
return theTypesFactory;
}
}
catch (Exception exception) {
EcorePlugin.INSTANCE.log(exception);
}
return new TypesFactoryImpl();
}
/**
* Creates an instance of the factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TypesFactoryImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EObject create(EClass eClass) {
switch (eClass.getClassifierID()) {
case TypesPackage.PACKAGE: return createPackage();
case TypesPackage.TYPE: return createType();
case TypesPackage.OPERATION: return createOperation();
case TypesPackage.PROPERTY: return createProperty();
case TypesPackage.PARAMETER: return createParameter();
case TypesPackage.TYPE_SPECIFIER: return createTypeSpecifier();
case TypesPackage.EVENT: return createEvent();
case TypesPackage.ENUMERATION_TYPE: return createEnumerationType();
case TypesPackage.PRIMITIVE_TYPE: return createPrimitiveType();
case TypesPackage.COMPLEX_TYPE: return createComplexType();
case TypesPackage.ENUMERATOR: return createEnumerator();
case TypesPackage.TYPE_CONSTRAINT: return createTypeConstraint();
case TypesPackage.TYPE_PARAMETER: return createTypeParameter();
case TypesPackage.GENERIC_ELEMENT: return createGenericElement();
case TypesPackage.PACKAGE_MEMBER: return createPackageMember();
case TypesPackage.RANGE_CONSTRAINT: return createRangeConstraint();
case TypesPackage.DOMAIN: return createDomain();
case TypesPackage.TYPE_ALIAS: return createTypeAlias();
case TypesPackage.ANNOTATION: return createAnnotation();
case TypesPackage.ARRAY_TYPE_SPECIFIER: return createArrayTypeSpecifier();
case TypesPackage.ANNOTATION_TYPE: return createAnnotationType();
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 TypesPackage.DIRECTION:
return createDirectionFromString(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 TypesPackage.DIRECTION:
return convertDirectionToString(eDataType, instanceValue);
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public org.yakindu.base.types.Package createPackage() {
PackageImpl package_ = new PackageImpl();
return package_;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Type createType() {
TypeImpl type = new TypeImpl();
return type;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Operation createOperation() {
OperationImpl operation = new OperationImpl();
return operation;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Property createProperty() {
PropertyImpl property = new PropertyImpl();
return property;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Parameter createParameter() {
ParameterImpl parameter = new ParameterImpl();
return parameter;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TypeSpecifier createTypeSpecifier() {
TypeSpecifierImpl typeSpecifier = new TypeSpecifierImpl();
return typeSpecifier;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Event createEvent() {
EventImpl event = new EventImpl();
return event;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EnumerationType createEnumerationType() {
EnumerationTypeImpl enumerationType = new EnumerationTypeImpl();
return enumerationType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public PrimitiveType createPrimitiveType() {
PrimitiveTypeImpl primitiveType = new PrimitiveTypeImpl();
return primitiveType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ComplexType createComplexType() {
ComplexTypeImpl complexType = new ComplexTypeImpl();
return complexType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Enumerator createEnumerator() {
EnumeratorImpl enumerator = new EnumeratorImpl();
return enumerator;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TypeConstraint createTypeConstraint() {
TypeConstraintImpl typeConstraint = new TypeConstraintImpl();
return typeConstraint;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TypeParameter createTypeParameter() {
TypeParameterImpl typeParameter = new TypeParameterImpl();
return typeParameter;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public GenericElement createGenericElement() {
GenericElementImpl genericElement = new GenericElementImpl();
return genericElement;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public PackageMember createPackageMember() {
PackageMemberImpl packageMember = new PackageMemberImpl();
return packageMember;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public RangeConstraint createRangeConstraint() {
RangeConstraintImpl rangeConstraint = new RangeConstraintImpl();
return rangeConstraint;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Domain createDomain() {
DomainImpl domain = new DomainImpl();
return domain;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TypeAlias createTypeAlias() {
TypeAliasImpl typeAlias = new TypeAliasImpl();
return typeAlias;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Annotation createAnnotation() {
AnnotationImpl annotation = new AnnotationImpl();
return annotation;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ArrayTypeSpecifier createArrayTypeSpecifier() {
ArrayTypeSpecifierImpl arrayTypeSpecifier = new ArrayTypeSpecifierImpl();
return arrayTypeSpecifier;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public AnnotationType createAnnotationType() {
AnnotationTypeImpl annotationType = new AnnotationTypeImpl();
return annotationType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Direction createDirectionFromString(EDataType eDataType, String initialValue) {
Direction result = Direction.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 convertDirectionToString(EDataType eDataType, Object instanceValue) {
return instanceValue == null ? null : instanceValue.toString();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TypesPackage getTypesPackage() {
return (TypesPackage)getEPackage();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @deprecated
* @generated
*/
@Deprecated
public static TypesPackage getPackage() {
return TypesPackage.eINSTANCE;
}
} //TypesFactoryImpl