blob: bf57f789b327c058438292b5438ff47714370216 [file] [log] [blame]
/**
* Copyright (c) 2010 xored software, Inc.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* xored software, Inc. - initial API and Implementation (Alex Panchenko)
*
* $Id: TypeInfoModelFactoryImpl.java,v 1.22 2012/06/12 10:40:31 apanchenk Exp $
*/
package org.eclipse.dltk.javascript.typeinfo.model.impl;
import java.util.Map;
import org.eclipse.dltk.javascript.typeinfo.MetaType;
import org.eclipse.dltk.javascript.typeinfo.TypeInfoManager;
import org.eclipse.dltk.javascript.typeinfo.model.AnyType;
import org.eclipse.dltk.javascript.typeinfo.model.ArrayType;
import org.eclipse.dltk.javascript.typeinfo.model.ClassType;
import org.eclipse.dltk.javascript.typeinfo.model.Constructor;
import org.eclipse.dltk.javascript.typeinfo.model.FunctionType;
import org.eclipse.dltk.javascript.typeinfo.model.GenericMethod;
import org.eclipse.dltk.javascript.typeinfo.model.GenericType;
import org.eclipse.dltk.javascript.typeinfo.model.MapType;
import org.eclipse.dltk.javascript.typeinfo.model.Method;
import org.eclipse.dltk.javascript.typeinfo.model.Parameter;
import org.eclipse.dltk.javascript.typeinfo.model.ParameterKind;
import org.eclipse.dltk.javascript.typeinfo.model.ParameterizedType;
import org.eclipse.dltk.javascript.typeinfo.model.Property;
import org.eclipse.dltk.javascript.typeinfo.model.RType;
import org.eclipse.dltk.javascript.typeinfo.model.RecordProperty;
import org.eclipse.dltk.javascript.typeinfo.model.RecordType;
import org.eclipse.dltk.javascript.typeinfo.model.SimpleType;
import org.eclipse.dltk.javascript.typeinfo.model.Type;
import org.eclipse.dltk.javascript.typeinfo.model.TypeAlias;
import org.eclipse.dltk.javascript.typeinfo.model.TypeInfoModelFactory;
import org.eclipse.dltk.javascript.typeinfo.model.TypeInfoModelPackage;
import org.eclipse.dltk.javascript.typeinfo.model.TypeKind;
import org.eclipse.dltk.javascript.typeinfo.model.TypeLiteral;
import org.eclipse.dltk.javascript.typeinfo.model.TypeVariable;
import org.eclipse.dltk.javascript.typeinfo.model.TypeVariableClassType;
import org.eclipse.dltk.javascript.typeinfo.model.TypeVariableReference;
import org.eclipse.dltk.javascript.typeinfo.model.UndefinedType;
import org.eclipse.dltk.javascript.typeinfo.model.UnionType;
import org.eclipse.dltk.javascript.typeinfo.model.Visibility;
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;
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Factory</b>.
* <!-- end-user-doc -->
* @generated
*/
public class TypeInfoModelFactoryImpl extends EFactoryImpl implements TypeInfoModelFactory {
/**
* Creates the default factory implementation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static TypeInfoModelFactory init() {
try {
TypeInfoModelFactory theTypeInfoModelFactory = (TypeInfoModelFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/dltk/javascript/typeinfo.ecore"); //$NON-NLS-1$
if (theTypeInfoModelFactory != null) {
return theTypeInfoModelFactory;
}
}
catch (Exception exception) {
EcorePlugin.INSTANCE.log(exception);
}
return new TypeInfoModelFactoryImpl();
}
/**
* Creates an instance of the factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TypeInfoModelFactoryImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EObject create(EClass eClass) {
switch (eClass.getClassifierID()) {
case TypeInfoModelPackage.TYPE: return createType();
case TypeInfoModelPackage.TYPE_ALIAS: return createTypeAlias();
case TypeInfoModelPackage.METHOD: return createMethod();
case TypeInfoModelPackage.PARAMETER: return createParameter();
case TypeInfoModelPackage.CONSTRUCTOR: return createConstructor();
case TypeInfoModelPackage.PROPERTY: return createProperty();
case TypeInfoModelPackage.ATTRIBUTE_ENTRY: return (EObject)createAttributeEntry();
case TypeInfoModelPackage.FUNCTION_TYPE: return createFunctionType();
case TypeInfoModelPackage.SIMPLE_TYPE: return createSimpleType();
case TypeInfoModelPackage.ARRAY_TYPE: return createArrayType();
case TypeInfoModelPackage.ANY_TYPE: return createAnyType();
case TypeInfoModelPackage.UNION_TYPE: return createUnionType();
case TypeInfoModelPackage.PARAMETERIZED_TYPE: return createParameterizedType();
case TypeInfoModelPackage.MAP_TYPE: return createMapType();
case TypeInfoModelPackage.RECORD_TYPE: return createRecordType();
case TypeInfoModelPackage.RECORD_PROPERTY: return createRecordProperty();
case TypeInfoModelPackage.CLASS_TYPE: return createClassType();
case TypeInfoModelPackage.UNDEFINED_TYPE: return createUndefinedType();
case TypeInfoModelPackage.TYPE_VARIABLE: return createTypeVariable();
case TypeInfoModelPackage.GENERIC_TYPE: return createGenericType();
case TypeInfoModelPackage.TYPE_VARIABLE_REFERENCE: return createTypeVariableReference();
case TypeInfoModelPackage.RTYPE: return createRType();
case TypeInfoModelPackage.GENERIC_METHOD: return createGenericMethod();
case TypeInfoModelPackage.TYPE_LITERAL: return createTypeLiteral();
case TypeInfoModelPackage.TYPE_VARIABLE_CLASS_TYPE: return createTypeVariableClassType();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object createFromString(EDataType eDataType, String initialValue) {
switch (eDataType.getClassifierID()) {
case TypeInfoModelPackage.TYPE_KIND:
return createTypeKindFromString(eDataType, initialValue);
case TypeInfoModelPackage.PARAMETER_KIND:
return createParameterKindFromString(eDataType, initialValue);
case TypeInfoModelPackage.VISIBILITY:
return createVisibilityFromString(eDataType, initialValue);
case TypeInfoModelPackage.META_TYPE:
return createMetaTypeFromString(eDataType, initialValue);
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String convertToString(EDataType eDataType, Object instanceValue) {
switch (eDataType.getClassifierID()) {
case TypeInfoModelPackage.TYPE_KIND:
return convertTypeKindToString(eDataType, instanceValue);
case TypeInfoModelPackage.PARAMETER_KIND:
return convertParameterKindToString(eDataType, instanceValue);
case TypeInfoModelPackage.VISIBILITY:
return convertVisibilityToString(eDataType, instanceValue);
case TypeInfoModelPackage.META_TYPE:
return convertMetaTypeToString(eDataType, instanceValue);
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Type createType() {
TypeImpl type = new TypeImpl();
return type;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Constructor createConstructor() {
ConstructorImpl constructor = new ConstructorImpl();
return constructor;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TypeAlias createTypeAlias() {
TypeAliasImpl typeAlias = new TypeAliasImpl();
return typeAlias;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Method createMethod() {
MethodImpl method = new MethodImpl();
return method;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Parameter createParameter() {
ParameterImpl parameter = new ParameterImpl();
return parameter;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Property createProperty() {
PropertyImpl property = new PropertyImpl();
return property;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Map.Entry<String, Object> createAttributeEntry() {
AttributeEntryImpl attributeEntry = new AttributeEntryImpl();
return attributeEntry;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public FunctionType createFunctionType() {
FunctionTypeImpl functionType = new FunctionTypeImpl();
return functionType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public SimpleType createSimpleType() {
SimpleTypeImpl simpleType = new SimpleTypeImpl();
return simpleType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ArrayType createArrayType() {
ArrayTypeImpl arrayType = new ArrayTypeImpl();
return arrayType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public AnyType createAnyType() {
AnyTypeImpl anyType = new AnyTypeImpl();
return anyType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public UnionType createUnionType() {
UnionTypeImpl unionType = new UnionTypeImpl();
return unionType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ParameterizedType createParameterizedType() {
ParameterizedTypeImpl parameterizedType = new ParameterizedTypeImpl();
return parameterizedType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public GenericType createGenericType() {
GenericTypeImpl genericType = new GenericTypeImpl();
return genericType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TypeVariableReference createTypeVariableReference() {
TypeVariableReferenceImpl typeVariableReference = new TypeVariableReferenceImpl();
return typeVariableReference;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public RType createRType() {
RTypeImpl rType = new RTypeImpl();
return rType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public GenericMethod createGenericMethod() {
GenericMethodImpl genericMethod = new GenericMethodImpl();
return genericMethod;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TypeLiteral createTypeLiteral() {
TypeLiteralImpl typeLiteral = new TypeLiteralImpl();
return typeLiteral;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TypeVariableClassType createTypeVariableClassType() {
TypeVariableClassTypeImpl typeVariableClassType = new TypeVariableClassTypeImpl();
return typeVariableClassType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public MapType createMapType() {
MapTypeImpl mapType = new MapTypeImpl();
return mapType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public RecordType createRecordType() {
RecordTypeImpl recordType = new RecordTypeImpl();
return recordType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public RecordProperty createRecordProperty() {
RecordPropertyImpl recordProperty = new RecordPropertyImpl();
return recordProperty;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ClassType createClassType() {
ClassTypeImpl classType = new ClassTypeImpl();
return classType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public UndefinedType createUndefinedType() {
UndefinedTypeImpl undefinedType = new UndefinedTypeImpl();
return undefinedType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TypeVariable createTypeVariable() {
TypeVariableImpl typeVariable = new TypeVariableImpl();
return typeVariable;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TypeKind createTypeKindFromString(EDataType eDataType, String initialValue) {
TypeKind result = TypeKind.get(initialValue);
if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String convertTypeKindToString(EDataType eDataType, Object instanceValue) {
return instanceValue == null ? null : instanceValue.toString();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ParameterKind createParameterKindFromString(EDataType eDataType, String initialValue) {
ParameterKind result = ParameterKind.get(initialValue);
if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String convertParameterKindToString(EDataType eDataType, Object instanceValue) {
return instanceValue == null ? null : instanceValue.toString();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Visibility createVisibilityFromString(EDataType eDataType, String initialValue) {
Visibility result = Visibility.get(initialValue);
if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String convertVisibilityToString(EDataType eDataType, Object instanceValue) {
return instanceValue == null ? null : instanceValue.toString();
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated NOT
*/
public MetaType createMetaTypeFromString(EDataType eDataType, String initialValue) {
return TypeInfoManager.getMetaType(initialValue);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated NOT
*/
public String convertMetaTypeToString(EDataType eDataType,
Object instanceValue) {
return instanceValue instanceof MetaType ? ((MetaType) instanceValue)
.getId() : null;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TypeInfoModelPackage getTypeInfoModelPackage() {
return (TypeInfoModelPackage)getEPackage();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @deprecated
* @generated
*/
@Deprecated
public static TypeInfoModelPackage getPackage() {
return TypeInfoModelPackage.eINSTANCE;
}
} //TypeInfoModelFactoryImpl