blob: b8f9e1961238e00d4c1e04c993e6d82033d2dcd4 [file] [log] [blame]
/**
* Copyright (c) 2015, 2021 Obeo.
* 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:
* Obeo - initial API and implementation
*
*/
package org.eclipse.acceleo.query.ast.impl;
import org.eclipse.acceleo.query.ast.And;
import org.eclipse.acceleo.query.ast.AstFactory;
import org.eclipse.acceleo.query.ast.AstPackage;
import org.eclipse.acceleo.query.ast.Binding;
import org.eclipse.acceleo.query.ast.BooleanLiteral;
import org.eclipse.acceleo.query.ast.Call;
import org.eclipse.acceleo.query.ast.CallType;
import org.eclipse.acceleo.query.ast.ClassTypeLiteral;
import org.eclipse.acceleo.query.ast.CollectionTypeLiteral;
import org.eclipse.acceleo.query.ast.Conditional;
import org.eclipse.acceleo.query.ast.EClassifierTypeLiteral;
import org.eclipse.acceleo.query.ast.EnumLiteral;
import org.eclipse.acceleo.query.ast.ErrorBinding;
import org.eclipse.acceleo.query.ast.ErrorCall;
import org.eclipse.acceleo.query.ast.ErrorConditional;
import org.eclipse.acceleo.query.ast.ErrorEClassifierTypeLiteral;
import org.eclipse.acceleo.query.ast.ErrorEnumLiteral;
import org.eclipse.acceleo.query.ast.ErrorExpression;
import org.eclipse.acceleo.query.ast.ErrorStringLiteral;
import org.eclipse.acceleo.query.ast.ErrorTypeLiteral;
import org.eclipse.acceleo.query.ast.ErrorVariableDeclaration;
import org.eclipse.acceleo.query.ast.Implies;
import org.eclipse.acceleo.query.ast.IntegerLiteral;
import org.eclipse.acceleo.query.ast.Lambda;
import org.eclipse.acceleo.query.ast.Let;
import org.eclipse.acceleo.query.ast.Literal;
import org.eclipse.acceleo.query.ast.NullLiteral;
import org.eclipse.acceleo.query.ast.Or;
import org.eclipse.acceleo.query.ast.RealLiteral;
import org.eclipse.acceleo.query.ast.SequenceInExtensionLiteral;
import org.eclipse.acceleo.query.ast.SetInExtensionLiteral;
import org.eclipse.acceleo.query.ast.StringLiteral;
import org.eclipse.acceleo.query.ast.TypeSetLiteral;
import org.eclipse.acceleo.query.ast.VarRef;
import org.eclipse.acceleo.query.ast.VariableDeclaration;
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 AstFactoryImpl extends EFactoryImpl implements AstFactory {
/**
* Creates the default factory implementation. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static AstFactory init() {
try {
AstFactory theAstFactory = (AstFactory)EPackage.Registry.INSTANCE.getEFactory(AstPackage.eNS_URI);
if (theAstFactory != null) {
return theAstFactory;
}
} catch (Exception exception) {
EcorePlugin.INSTANCE.log(exception);
}
return new AstFactoryImpl();
}
/**
* Creates an instance of the factory. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public AstFactoryImpl() {
super();
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public EObject create(EClass eClass) {
switch (eClass.getClassifierID()) {
case AstPackage.VAR_REF:
return createVarRef();
case AstPackage.CALL:
return createCall();
case AstPackage.LITERAL:
return createLiteral();
case AstPackage.INTEGER_LITERAL:
return createIntegerLiteral();
case AstPackage.REAL_LITERAL:
return createRealLiteral();
case AstPackage.STRING_LITERAL:
return createStringLiteral();
case AstPackage.BOOLEAN_LITERAL:
return createBooleanLiteral();
case AstPackage.ENUM_LITERAL:
return createEnumLiteral();
case AstPackage.ECLASSIFIER_TYPE_LITERAL:
return createEClassifierTypeLiteral();
case AstPackage.CLASS_TYPE_LITERAL:
return createClassTypeLiteral();
case AstPackage.TYPE_SET_LITERAL:
return createTypeSetLiteral();
case AstPackage.COLLECTION_TYPE_LITERAL:
return createCollectionTypeLiteral();
case AstPackage.LAMBDA:
return createLambda();
case AstPackage.NULL_LITERAL:
return createNullLiteral();
case AstPackage.SET_IN_EXTENSION_LITERAL:
return createSetInExtensionLiteral();
case AstPackage.SEQUENCE_IN_EXTENSION_LITERAL:
return createSequenceInExtensionLiteral();
case AstPackage.VARIABLE_DECLARATION:
return createVariableDeclaration();
case AstPackage.ERROR_EXPRESSION:
return createErrorExpression();
case AstPackage.ERROR_TYPE_LITERAL:
return createErrorTypeLiteral();
case AstPackage.ERROR_ECLASSIFIER_TYPE_LITERAL:
return createErrorEClassifierTypeLiteral();
case AstPackage.ERROR_ENUM_LITERAL:
return createErrorEnumLiteral();
case AstPackage.ERROR_CALL:
return createErrorCall();
case AstPackage.ERROR_VARIABLE_DECLARATION:
return createErrorVariableDeclaration();
case AstPackage.ERROR_STRING_LITERAL:
return createErrorStringLiteral();
case AstPackage.ERROR_CONDITIONAL:
return createErrorConditional();
case AstPackage.BINDING:
return createBinding();
case AstPackage.ERROR_BINDING:
return createErrorBinding();
case AstPackage.LET:
return createLet();
case AstPackage.CONDITIONAL:
return createConditional();
case AstPackage.OR:
return createOr();
case AstPackage.AND:
return createAnd();
case AstPackage.IMPLIES:
return createImplies();
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 AstPackage.CALL_TYPE:
return createCallTypeFromString(eDataType, initialValue);
case AstPackage.JAVA_CLASS:
return createJavaClassFromString(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 AstPackage.CALL_TYPE:
return convertCallTypeToString(eDataType, instanceValue);
case AstPackage.JAVA_CLASS:
return convertJavaClassToString(eDataType, instanceValue);
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName()
+ "' is not a valid classifier");
}
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public VarRef createVarRef() {
VarRefImpl varRef = new VarRefImpl();
return varRef;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public Call createCall() {
CallImpl call = new CallImpl();
return call;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public Literal createLiteral() {
LiteralImpl literal = new LiteralImpl();
return literal;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public IntegerLiteral createIntegerLiteral() {
IntegerLiteralImpl integerLiteral = new IntegerLiteralImpl();
return integerLiteral;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public RealLiteral createRealLiteral() {
RealLiteralImpl realLiteral = new RealLiteralImpl();
return realLiteral;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public StringLiteral createStringLiteral() {
StringLiteralImpl stringLiteral = new StringLiteralImpl();
return stringLiteral;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public BooleanLiteral createBooleanLiteral() {
BooleanLiteralImpl booleanLiteral = new BooleanLiteralImpl();
return booleanLiteral;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public EnumLiteral createEnumLiteral() {
EnumLiteralImpl enumLiteral = new EnumLiteralImpl();
return enumLiteral;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public EClassifierTypeLiteral createEClassifierTypeLiteral() {
EClassifierTypeLiteralImpl eClassifierTypeLiteral = new EClassifierTypeLiteralImpl();
return eClassifierTypeLiteral;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public ClassTypeLiteral createClassTypeLiteral() {
ClassTypeLiteralImpl classTypeLiteral = new ClassTypeLiteralImpl();
return classTypeLiteral;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public TypeSetLiteral createTypeSetLiteral() {
TypeSetLiteralImpl typeSetLiteral = new TypeSetLiteralImpl();
return typeSetLiteral;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public CollectionTypeLiteral createCollectionTypeLiteral() {
CollectionTypeLiteralImpl collectionTypeLiteral = new CollectionTypeLiteralImpl();
return collectionTypeLiteral;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public Lambda createLambda() {
LambdaImpl lambda = new LambdaImpl();
return lambda;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public NullLiteral createNullLiteral() {
NullLiteralImpl nullLiteral = new NullLiteralImpl();
return nullLiteral;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public SetInExtensionLiteral createSetInExtensionLiteral() {
SetInExtensionLiteralImpl setInExtensionLiteral = new SetInExtensionLiteralImpl();
return setInExtensionLiteral;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public SequenceInExtensionLiteral createSequenceInExtensionLiteral() {
SequenceInExtensionLiteralImpl sequenceInExtensionLiteral = new SequenceInExtensionLiteralImpl();
return sequenceInExtensionLiteral;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public VariableDeclaration createVariableDeclaration() {
VariableDeclarationImpl variableDeclaration = new VariableDeclarationImpl();
return variableDeclaration;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public ErrorExpression createErrorExpression() {
ErrorExpressionImpl errorExpression = new ErrorExpressionImpl();
return errorExpression;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public ErrorTypeLiteral createErrorTypeLiteral() {
ErrorTypeLiteralImpl errorTypeLiteral = new ErrorTypeLiteralImpl();
return errorTypeLiteral;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public ErrorEClassifierTypeLiteral createErrorEClassifierTypeLiteral() {
ErrorEClassifierTypeLiteralImpl errorEClassifierTypeLiteral = new ErrorEClassifierTypeLiteralImpl();
return errorEClassifierTypeLiteral;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public ErrorEnumLiteral createErrorEnumLiteral() {
ErrorEnumLiteralImpl errorEnumLiteral = new ErrorEnumLiteralImpl();
return errorEnumLiteral;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public ErrorCall createErrorCall() {
ErrorCallImpl errorCall = new ErrorCallImpl();
return errorCall;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public ErrorVariableDeclaration createErrorVariableDeclaration() {
ErrorVariableDeclarationImpl errorVariableDeclaration = new ErrorVariableDeclarationImpl();
return errorVariableDeclaration;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public ErrorStringLiteral createErrorStringLiteral() {
ErrorStringLiteralImpl errorStringLiteral = new ErrorStringLiteralImpl();
return errorStringLiteral;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public ErrorConditional createErrorConditional() {
ErrorConditionalImpl errorConditional = new ErrorConditionalImpl();
return errorConditional;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public Binding createBinding() {
BindingImpl binding = new BindingImpl();
return binding;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public ErrorBinding createErrorBinding() {
ErrorBindingImpl errorBinding = new ErrorBindingImpl();
return errorBinding;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public Let createLet() {
LetImpl let = new LetImpl();
return let;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public Conditional createConditional() {
ConditionalImpl conditional = new ConditionalImpl();
return conditional;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public Or createOr() {
OrImpl or = new OrImpl();
return or;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public And createAnd() {
AndImpl and = new AndImpl();
return and;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public Implies createImplies() {
ImpliesImpl implies = new ImpliesImpl();
return implies;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public CallType createCallTypeFromString(EDataType eDataType, String initialValue) {
CallType result = CallType.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 convertCallTypeToString(EDataType eDataType, Object instanceValue) {
return instanceValue == null ? null : instanceValue.toString();
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public Class createJavaClassFromString(EDataType eDataType, String initialValue) {
return (Class)super.createFromString(eDataType, initialValue);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public String convertJavaClassToString(EDataType eDataType, Object instanceValue) {
return super.convertToString(eDataType, instanceValue);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public AstPackage getAstPackage() {
return (AstPackage)getEPackage();
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @deprecated
* @generated
*/
@Deprecated
public static AstPackage getPackage() {
return AstPackage.eINSTANCE;
}
} // AstFactoryImpl