/**
* Copyright (C) 2006-2017 INRIA and contributors
* Spoon - http://spoon.gforge.inria.fr/
*
* This software is governed by the CeCILL-C License under French law and
* abiding by the rules of distribution of free software. You can use, modify
* and/or redistribute the software under the terms of the CeCILL-C license as
* circulated by CEA, CNRS and INRIA at http://www.cecill.info.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the CeCILL-C License for more details.
*
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL-C license and that you accept its terms.
*/
package spoon.support;
import spoon.reflect.code.CtAnnotationFieldAccess;
import spoon.reflect.code.CtArrayRead;
import spoon.reflect.code.CtArrayWrite;
import spoon.reflect.code.CtAssert;
import spoon.reflect.code.CtAssignment;
import spoon.reflect.code.CtBinaryOperator;
import spoon.reflect.code.CtBlock;
import spoon.reflect.code.CtBreak;
import spoon.reflect.code.CtCase;
import spoon.reflect.code.CtCatch;
import spoon.reflect.code.CtCatchVariable;
import spoon.reflect.code.CtCodeSnippetExpression;
import spoon.reflect.code.CtCodeSnippetStatement;
import spoon.reflect.code.CtComment;
import spoon.reflect.code.CtConditional;
import spoon.reflect.code.CtConstructorCall;
import spoon.reflect.code.CtContinue;
import spoon.reflect.code.CtDo;
import spoon.reflect.code.CtExecutableReferenceExpression;
import spoon.reflect.code.CtExpression;
import spoon.reflect.code.CtFieldRead;
import spoon.reflect.code.CtFieldWrite;
import spoon.reflect.code.CtFor;
import spoon.reflect.code.CtForEach;
import spoon.reflect.code.CtIf;
import spoon.reflect.code.CtInvocation;
import spoon.reflect.code.CtLambda;
import spoon.reflect.code.CtLiteral;
import spoon.reflect.code.CtLocalVariable;
import spoon.reflect.code.CtNewArray;
import spoon.reflect.code.CtNewClass;
import spoon.reflect.code.CtOperatorAssignment;
import spoon.reflect.code.CtReturn;
import spoon.reflect.code.CtStatementList;
import spoon.reflect.code.CtSuperAccess;
import spoon.reflect.code.CtSwitch;
import spoon.reflect.code.CtSynchronized;
import spoon.reflect.code.CtThisAccess;
import spoon.reflect.code.CtThrow;
import spoon.reflect.code.CtTry;
import spoon.reflect.code.CtTryWithResource;
import spoon.reflect.code.CtTypeAccess;
import spoon.reflect.code.CtUnaryOperator;
import spoon.reflect.code.CtVariableRead;
import spoon.reflect.code.CtVariableWrite;
import spoon.reflect.code.CtWhile;
import spoon.reflect.cu.CompilationUnit;
import spoon.reflect.cu.SourcePosition;
import spoon.reflect.cu.position.BodyHolderSourcePosition;
import spoon.reflect.cu.position.DeclarationSourcePosition;
import spoon.reflect.declaration.CtAnnotation;
import spoon.reflect.declaration.CtAnnotationMethod;
import spoon.reflect.declaration.CtAnnotationType;
import spoon.reflect.declaration.CtAnonymousExecutable;
import spoon.reflect.declaration.CtClass;
import spoon.reflect.declaration.CtConstructor;
import spoon.reflect.declaration.CtElement;
import spoon.reflect.declaration.CtEnum;
import spoon.reflect.declaration.CtEnumValue;
import spoon.reflect.declaration.CtField;
import spoon.reflect.declaration.CtInterface;
import spoon.reflect.declaration.CtMethod;
import spoon.reflect.declaration.CtPackage;
import spoon.reflect.declaration.CtParameter;
import spoon.reflect.declaration.CtTypeParameter;
import spoon.reflect.factory.CoreFactory;
import spoon.reflect.factory.Factory;
import spoon.reflect.factory.SubFactory;
import spoon.reflect.reference.CtArrayTypeReference;
import spoon.reflect.reference.CtCatchVariableReference;
import spoon.reflect.reference.CtExecutableReference;
import spoon.reflect.reference.CtFieldReference;
import spoon.reflect.reference.CtIntersectionTypeReference;
import spoon.reflect.reference.CtLocalVariableReference;
import spoon.reflect.reference.CtPackageReference;
import spoon.reflect.reference.CtParameterReference;
import spoon.reflect.reference.CtTypeParameterReference;
import spoon.reflect.reference.CtTypeReference;
import spoon.reflect.reference.CtUnboundVariableReference;
import spoon.reflect.reference.CtWildcardReference;
import spoon.support.reflect.code.CtAnnotationFieldAccessImpl;
import spoon.support.reflect.code.CtArrayReadImpl;
import spoon.support.reflect.code.CtArrayWriteImpl;
import spoon.support.reflect.code.CtAssertImpl;
import spoon.support.reflect.code.CtAssignmentImpl;
import spoon.support.reflect.code.CtBinaryOperatorImpl;
import spoon.support.reflect.code.CtBlockImpl;
import spoon.support.reflect.code.CtBreakImpl;
import spoon.support.reflect.code.CtCaseImpl;
import spoon.support.reflect.code.CtCatchImpl;
import spoon.support.reflect.code.CtCatchVariableImpl;
import spoon.support.reflect.code.CtCodeSnippetExpressionImpl;
import spoon.support.reflect.code.CtCodeSnippetStatementImpl;
import spoon.support.reflect.code.CtCommentImpl;
import spoon.support.reflect.code.CtConditionalImpl;
import spoon.support.reflect.code.CtConstructorCallImpl;
import spoon.support.reflect.code.CtContinueImpl;
import spoon.support.reflect.code.CtDoImpl;
import spoon.support.reflect.code.CtExecutableReferenceExpressionImpl;
import spoon.support.reflect.code.CtFieldReadImpl;
import spoon.support.reflect.code.CtFieldWriteImpl;
import spoon.support.reflect.code.CtForEachImpl;
import spoon.support.reflect.code.CtForImpl;
import spoon.support.reflect.code.CtIfImpl;
import spoon.support.reflect.code.CtInvocationImpl;
import spoon.support.reflect.code.CtLambdaImpl;
import spoon.support.reflect.code.CtLiteralImpl;
import spoon.support.reflect.code.CtLocalVariableImpl;
import spoon.support.reflect.code.CtNewArrayImpl;
import spoon.support.reflect.code.CtNewClassImpl;
import spoon.support.reflect.code.CtOperatorAssignmentImpl;
import spoon.support.reflect.code.CtReturnImpl;
import spoon.support.reflect.code.CtStatementListImpl;
import spoon.support.reflect.code.CtSuperAccessImpl;
import spoon.support.reflect.code.CtSwitchImpl;
import spoon.support.reflect.code.CtSynchronizedImpl;
import spoon.support.reflect.code.CtThisAccessImpl;
import spoon.support.reflect.code.CtThrowImpl;
import spoon.support.reflect.code.CtTryImpl;
import spoon.support.reflect.code.CtTryWithResourceImpl;
import spoon.support.reflect.code.CtTypeAccessImpl;
import spoon.support.reflect.code.CtUnaryOperatorImpl;
import spoon.support.reflect.code.CtVariableReadImpl;
import spoon.support.reflect.code.CtVariableWriteImpl;
import spoon.support.reflect.code.CtWhileImpl;
import spoon.support.reflect.cu.CompilationUnitImpl;
import spoon.support.reflect.cu.position.BodyHolderSourcePositionImpl;
import spoon.support.reflect.cu.position.DeclarationSourcePositionImpl;
import spoon.support.reflect.cu.position.SourcePositionImpl;
import spoon.support.reflect.declaration.CtAnnotationImpl;
import spoon.support.reflect.declaration.CtAnnotationMethodImpl;
import spoon.support.reflect.declaration.CtAnnotationTypeImpl;
import spoon.support.reflect.declaration.CtAnonymousExecutableImpl;
import spoon.support.reflect.declaration.CtClassImpl;
import spoon.support.reflect.declaration.CtConstructorImpl;
import spoon.support.reflect.declaration.CtEnumImpl;
import spoon.support.reflect.declaration.CtEnumValueImpl;
import spoon.support.reflect.declaration.CtFieldImpl;
import spoon.support.reflect.declaration.CtInterfaceImpl;
import spoon.support.reflect.declaration.CtMethodImpl;
import spoon.support.reflect.declaration.CtPackageImpl;
import spoon.support.reflect.declaration.CtParameterImpl;
import spoon.support.reflect.declaration.CtTypeParameterImpl;
import spoon.support.reflect.reference.CtArrayTypeReferenceImpl;
import spoon.support.reflect.reference.CtCatchVariableReferenceImpl;
import spoon.support.reflect.reference.CtExecutableReferenceImpl;
import spoon.support.reflect.reference.CtFieldReferenceImpl;
import spoon.support.reflect.reference.CtIntersectionTypeReferenceImpl;
import spoon.support.reflect.reference.CtLocalVariableReferenceImpl;
import spoon.support.reflect.reference.CtPackageReferenceImpl;
import spoon.support.reflect.reference.CtParameterReferenceImpl;
import spoon.support.reflect.reference.CtTypeParameterReferenceImpl;
import spoon.support.reflect.reference.CtTypeReferenceImpl;
import spoon.support.reflect.reference.CtUnboundVariableReferenceImpl;
import spoon.support.reflect.reference.CtWildcardReferenceImpl;
import spoon.support.visitor.equals.CloneHelper;
import java.io.Serializable;
import java.lang.annotation.Annotation;
/**
* This class implements a default core factory for Spoon's meta-model. This
* implementation is done with regular Java classes (POJOs).
*/
public class DefaultCoreFactory extends SubFactory implements CoreFactory, Serializable {
private static final long serialVersionUID = 1L;
/**
* Default constructor.
*/
public DefaultCoreFactory() {
super(null);
}
public <T extends CtElement> T clone(T object) {
return CloneHelper.clone(object);
}
public <A extends Annotation> CtAnnotation<A> createAnnotation() {
CtAnnotation<A> e = new CtAnnotationImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T extends Annotation> CtAnnotationType<T> createAnnotationType() {
CtAnnotationType<T> e = new CtAnnotationTypeImpl<>();
e.setFactory(getMainFactory());
e.setParent(getMainFactory().Package().getRootPackage());
return e;
}
public CtAnonymousExecutable createAnonymousExecutable() {
CtAnonymousExecutable e = new CtAnonymousExecutableImpl();
e.setFactory(getMainFactory());
return e;
}
@Override
public <T> CtArrayRead<T> createArrayRead() {
CtArrayRead<T> e = new CtArrayReadImpl<>();
e.setFactory(getMainFactory());
return e;
}
@Override
public <T> CtArrayWrite<T> createArrayWrite() {
CtArrayWrite<T> e = new CtArrayWriteImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtArrayTypeReference<T> createArrayTypeReference() {
CtArrayTypeReference<T> e = new CtArrayTypeReferenceImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtAssert<T> createAssert() {
CtAssert<T> e = new CtAssertImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T, A extends T> CtAssignment<T, A> createAssignment() {
CtAssignment<T, A> e = new CtAssignmentImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtBinaryOperator<T> createBinaryOperator() {
CtBinaryOperator<T> e = new CtBinaryOperatorImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <R> CtBlock<R> createBlock() {
CtBlock<R> e = new CtBlockImpl<>();
e.setFactory(getMainFactory());
return e;
}
public CtBreak createBreak() {
CtBreak e = new CtBreakImpl();
e.setFactory(getMainFactory());
return e;
}
public <S> CtCase<S> createCase() {
CtCase<S> e = new CtCaseImpl<>();
e.setFactory(getMainFactory());
return e;
}
public CtCatch createCatch() {
CtCatch e = new CtCatchImpl();
e.setFactory(getMainFactory());
return e;
}
public <T> CtClass<T> createClass() {
CtClass<T> e = new CtClassImpl<>();
e.setFactory(getMainFactory());
e.setParent(getMainFactory().Package().getRootPackage());
return e;
}
@Override
public CtTypeParameter createTypeParameter() {
CtTypeParameter e = new CtTypeParameterImpl();
e.setFactory(getMainFactory());
return e;
}
public <T> CtConditional<T> createConditional() {
CtConditional<T> e = new CtConditionalImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtConstructor<T> createConstructor() {
CtConstructor<T> e = new CtConstructorImpl<>();
e.setFactory(getMainFactory());
return e;
}
public CtContinue createContinue() {
CtContinue e = new CtContinueImpl();
e.setFactory(getMainFactory());
return e;
}
public CtDo createDo() {
CtDo e = new CtDoImpl();
e.setFactory(getMainFactory());
return e;
}
public <T extends Enum<?>> CtEnum<T> createEnum() {
CtEnum<T> e = new CtEnumImpl<>();
e.setFactory(getMainFactory());
e.setParent(getMainFactory().Package().getRootPackage());
return e;
}
public <T> CtExecutableReference<T> createExecutableReference() {
CtExecutableReference<T> e = new CtExecutableReferenceImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtField<T> createField() {
CtField<T> e = new CtFieldImpl<>();
e.setFactory(getMainFactory());
return e;
}
@Override
public <T> CtEnumValue<T> createEnumValue() {
CtEnumValue<T> e = new CtEnumValueImpl<>();
e.setFactory(getMainFactory());
return e;
}
@Override
public <T> CtFieldRead<T> createFieldRead() {
CtFieldRead<T> e = new CtFieldReadImpl<>();
e.setFactory(getMainFactory());
return e;
}
@Override
public <T> CtFieldWrite<T> createFieldWrite() {
CtFieldWrite<T> e = new CtFieldWriteImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtAnnotationFieldAccess<T> createAnnotationFieldAccess() {
CtAnnotationFieldAccess<T> e = new CtAnnotationFieldAccessImpl<>();
e.setFactory(getMainFactory());
return e;
}
@Override
public <T> CtUnboundVariableReference<T> createUnboundVariableReference() {
CtUnboundVariableReference e = new CtUnboundVariableReferenceImpl<T>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtFieldReference<T> createFieldReference() {
CtFieldReference<T> e = new CtFieldReferenceImpl<>();
e.setFactory(getMainFactory());
return e;
}
public CtFor createFor() {
CtFor e = new CtForImpl();
e.setFactory(getMainFactory());
return e;
}
public CtForEach createForEach() {
CtForEach e = new CtForEachImpl();
e.setFactory(getMainFactory());
return e;
}
public CtIf createIf() {
CtIf e = new CtIfImpl();
e.setFactory(getMainFactory());
return e;
}
public <T> CtInterface<T> createInterface() {
CtInterface<T> e = new CtInterfaceImpl<>();
e.setFactory(getMainFactory());
e.setParent(getMainFactory().Package().getRootPackage());
return e;
}
public <T> CtInvocation<T> createInvocation() {
CtInvocation<T> e = new CtInvocationImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtLiteral<T> createLiteral() {
CtLiteral<T> e = new CtLiteralImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtLocalVariable<T> createLocalVariable() {
CtLocalVariable<T> e = new CtLocalVariableImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtLocalVariableReference<T> createLocalVariableReference() {
CtLocalVariableReference<T> e = new CtLocalVariableReferenceImpl<>();
e.setFactory(getMainFactory());
return e;
}
@Override
public <T> CtCatchVariable<T> createCatchVariable() {
CtCatchVariable<T> e = new CtCatchVariableImpl<>();
e.setFactory(getMainFactory());
return e;
}
@Override
public <T> CtCatchVariableReference<T> createCatchVariableReference() {
CtCatchVariableReference<T> e = new CtCatchVariableReferenceImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtMethod<T> createMethod() {
CtMethod<T> e = new CtMethodImpl<>();
e.setFactory(getMainFactory());
return e;
}
@Override
public <T> CtAnnotationMethod<T> createAnnotationMethod() {
CtAnnotationMethod<T> e = new CtAnnotationMethodImpl<T>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtNewArray<T> createNewArray() {
CtNewArray<T> e = new CtNewArrayImpl<>();
e.setFactory(getMainFactory());
return e;
}
@Override
public <T> CtConstructorCall<T> createConstructorCall() {
CtConstructorCall<T> e = new CtConstructorCallImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtNewClass<T> createNewClass() {
CtNewClass<T> e = new CtNewClassImpl<>();
e.setFactory(getMainFactory());
return e;
}
@Override
public <T> CtLambda<T> createLambda() {
CtLambda<T> e = new CtLambdaImpl<>();
e.setFactory(getMainFactory());
return e;
}
@Override
public <T, E extends CtExpression<?>> CtExecutableReferenceExpression<T, E> createExecutableReferenceExpression() {
CtExecutableReferenceExpression<T, E> e = new CtExecutableReferenceExpressionImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T, A extends T> CtOperatorAssignment<T, A> createOperatorAssignment() {
CtOperatorAssignment<T, A> e = new CtOperatorAssignmentImpl<>();
e.setFactory(getMainFactory());
return e;
}
public CtPackage createPackage() {
CtPackage e = new CtPackageImpl();
e.setFactory(getMainFactory());
e.setParent(getMainFactory().Package().getRootPackage());
return e;
}
public CtPackageReference createPackageReference() {
CtPackageReference e = new CtPackageReferenceImpl();
e.setFactory(getMainFactory());
return e;
}
public <T> CtParameter<T> createParameter() {
CtParameter<T> e = new CtParameterImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtParameterReference<T> createParameterReference() {
CtParameterReference<T> e = new CtParameterReferenceImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <R> CtReturn<R> createReturn() {
CtReturn<R> e = new CtReturnImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <R> CtStatementList createStatementList() {
CtStatementList e = new CtStatementListImpl<R>();
e.setFactory(getMainFactory());
return e;
}
public <S> CtSwitch<S> createSwitch() {
CtSwitch<S> e = new CtSwitchImpl<>();
e.setFactory(getMainFactory());
return e;
}
public CtSynchronized createSynchronized() {
CtSynchronized e = new CtSynchronizedImpl();
e.setFactory(getMainFactory());
return e;
}
public CtThrow createThrow() {
CtThrow e = new CtThrowImpl();
e.setFactory(getMainFactory());
return e;
}
public CtTry createTry() {
CtTry e = new CtTryImpl();
e.setFactory(getMainFactory());
return e;
}
@Override
public CtTryWithResource createTryWithResource() {
CtTryWithResource e = new CtTryWithResourceImpl();
e.setFactory(getMainFactory());
return e;
}
public CtTypeParameterReference createTypeParameterReference() {
CtTypeParameterReference e = new CtTypeParameterReferenceImpl();
e.setFactory(getMainFactory());
return e;
}
@Override
public CtWildcardReference createWildcardReference() {
CtWildcardReference e = new CtWildcardReferenceImpl();
e.setFactory(getMainFactory());
return e;
}
@Override
public <T> CtIntersectionTypeReference<T> createIntersectionTypeReference() {
CtIntersectionTypeReference<T> e = new CtIntersectionTypeReferenceImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtTypeReference<T> createTypeReference() {
CtTypeReference<T> e = new CtTypeReferenceImpl<>();
e.setFactory(getMainFactory());
return e;
}
@Override
public <T> CtTypeAccess<T> createTypeAccess() {
CtTypeAccess<T> e = new CtTypeAccessImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtUnaryOperator<T> createUnaryOperator() {
CtUnaryOperator<T> e = new CtUnaryOperatorImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtVariableRead<T> createVariableRead() {
CtVariableRead<T> e = new CtVariableReadImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtVariableWrite<T> createVariableWrite() {
CtVariableWrite<T> e = new CtVariableWriteImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtCodeSnippetExpression<T> createCodeSnippetExpression() {
CtCodeSnippetExpression<T> e = new CtCodeSnippetExpressionImpl<>();
e.setFactory(getMainFactory());
return e;
}
public CtCodeSnippetStatement createCodeSnippetStatement() {
CtCodeSnippetStatement e = new CtCodeSnippetStatementImpl();
e.setFactory(getMainFactory());
return e;
}
public CtComment createComment() {
CtComment e = new CtCommentImpl();
e.setCommentType(CtComment.CommentType.BLOCK);
e.setContent("");
e.setFactory(getMainFactory());
return e;
}
public CtWhile createWhile() {
CtWhile e = new CtWhileImpl();
e.setFactory(getMainFactory());
return e;
}
public Factory getMainFactory() {
return factory;
}
public void setMainFactory(Factory mainFactory) {
this.factory = mainFactory;
}
@Override
public SourcePosition createSourcePosition(CompilationUnit compilationUnit, int startSource, int end, int[] lineSeparatorPositions) {
return new SourcePositionImpl(compilationUnit, startSource, end, lineSeparatorPositions);
}
@Override
public DeclarationSourcePosition createDeclarationSourcePosition(CompilationUnit compilationUnit, int startSource, int end, int modifierStart, int modifierEnd, int declarationStart, int declarationEnd, int[] lineSeparatorPositions) {
return new DeclarationSourcePositionImpl(compilationUnit, startSource, end, modifierStart, modifierEnd, declarationStart, declarationEnd, lineSeparatorPositions);
}
@Override
public BodyHolderSourcePosition createBodyHolderSourcePosition(CompilationUnit compilationUnit, int startSource, int end, int modifierStart, int modifierEnd, int declarationStart, int declarationEnd, int bodyStart, int bodyEnd, int[] lineSeparatorPositions) {
return new BodyHolderSourcePositionImpl(compilationUnit,
startSource, end,
modifierStart, modifierEnd,
declarationStart, declarationEnd,
bodyStart, bodyEnd,
lineSeparatorPositions);
}
public CompilationUnit createCompilationUnit() {
CompilationUnit cu = new CompilationUnitImpl();
cu.setFactory(getMainFactory());
return cu;
}
public <T> CtThisAccess<T> createThisAccess() {
CtThisAccess<T> e = new CtThisAccessImpl<>();
e.setFactory(getMainFactory());
return e;
}
public <T> CtSuperAccess<T> createSuperAccess() {
CtSuperAccess<T> e = new CtSuperAccessImpl<>();
e.setFactory(getMainFactory());
return e;
}
public CtElement create(Class<? extends CtElement> klass) {
if (klass.equals(spoon.reflect.code.CtAnnotationFieldAccess.class)) {
return createAnnotationFieldAccess();
}
if (klass.equals(spoon.reflect.code.CtArrayRead.class)) {
return createArrayRead();
}
if (klass.equals(spoon.reflect.code.CtArrayWrite.class)) {
return createArrayWrite();
}
if (klass.equals(spoon.reflect.code.CtAssert.class)) {
return createAssert();
}
if (klass.equals(spoon.reflect.code.CtAssignment.class)) {
return createAssignment();
}
if (klass.equals(spoon.reflect.code.CtBinaryOperator.class)) {
return createBinaryOperator();
}
if (klass.equals(spoon.reflect.code.CtBlock.class)) {
return createBlock();
}
if (klass.equals(spoon.reflect.code.CtBreak.class)) {
return createBreak();
}
if (klass.equals(spoon.reflect.code.CtCase.class)) {
return createCase();
}
if (klass.equals(spoon.reflect.code.CtCatch.class)) {
return createCatch();
}
if (klass.equals(spoon.reflect.code.CtCatchVariable.class)) {
return createCatchVariable();
}
if (klass.equals(spoon.reflect.code.CtCodeSnippetExpression.class)) {
return createCodeSnippetExpression();
}
if (klass.equals(spoon.reflect.code.CtCodeSnippetStatement.class)) {
return createCodeSnippetStatement();
}
if (klass.equals(spoon.reflect.code.CtComment.class)) {
return createComment();
}
if (klass.equals(spoon.reflect.code.CtConditional.class)) {
return createConditional();
}
if (klass.equals(spoon.reflect.code.CtConstructorCall.class)) {
return createConstructorCall();
}
if (klass.equals(spoon.reflect.code.CtContinue.class)) {
return createContinue();
}
if (klass.equals(spoon.reflect.code.CtDo.class)) {
return createDo();
}
if (klass.equals(spoon.reflect.code.CtExecutableReferenceExpression.class)) {
return createExecutableReferenceExpression();
}
if (klass.equals(spoon.reflect.code.CtFieldRead.class)) {
return createFieldRead();
}
if (klass.equals(spoon.reflect.code.CtFieldWrite.class)) {
return createFieldWrite();
}
if (klass.equals(spoon.reflect.code.CtForEach.class)) {
return createForEach();
}
if (klass.equals(spoon.reflect.code.CtFor.class)) {
return createFor();
}
if (klass.equals(spoon.reflect.code.CtIf.class)) {
return createIf();
}
if (klass.equals(spoon.reflect.code.CtInvocation.class)) {
return createInvocation();
}
if (klass.equals(spoon.reflect.code.CtLambda.class)) {
return createLambda();
}
if (klass.equals(spoon.reflect.code.CtLiteral.class)) {
return createLiteral();
}
if (klass.equals(spoon.reflect.code.CtLocalVariable.class)) {
return createLocalVariable();
}
if (klass.equals(spoon.reflect.code.CtNewArray.class)) {
return createNewArray();
}
if (klass.equals(spoon.reflect.code.CtNewClass.class)) {
return createNewClass();
}
if (klass.equals(spoon.reflect.code.CtOperatorAssignment.class)) {
return createOperatorAssignment();
}
if (klass.equals(spoon.reflect.code.CtReturn.class)) {
return createReturn();
}
if (klass.equals(spoon.reflect.code.CtStatementList.class)) {
return createStatementList();
}
if (klass.equals(spoon.reflect.code.CtSuperAccess.class)) {
return createSuperAccess();
}
if (klass.equals(spoon.reflect.code.CtSwitch.class)) {
return createSwitch();
}
if (klass.equals(spoon.reflect.code.CtSynchronized.class)) {
return createSynchronized();
}
if (klass.equals(spoon.reflect.code.CtThisAccess.class)) {
return createThisAccess();
}
if (klass.equals(spoon.reflect.code.CtThrow.class)) {
return createThrow();
}
if (klass.equals(spoon.reflect.code.CtTry.class)) {
return createTry();
}
if (klass.equals(spoon.reflect.code.CtTryWithResource.class)) {
return createTryWithResource();
}
if (klass.equals(spoon.reflect.code.CtTypeAccess.class)) {
return createTypeAccess();
}
if (klass.equals(spoon.reflect.code.CtUnaryOperator.class)) {
return createUnaryOperator();
}
if (klass.equals(spoon.reflect.code.CtVariableRead.class)) {
return createVariableRead();
}
if (klass.equals(spoon.reflect.code.CtVariableWrite.class)) {
return createVariableWrite();
}
if (klass.equals(spoon.reflect.code.CtWhile.class)) {
return createWhile();
}
if (klass.equals(spoon.reflect.declaration.CtAnnotation.class)) {
return createAnnotation();
}
if (klass.equals(spoon.reflect.declaration.CtAnnotationMethod.class)) {
return createAnnotationMethod();
}
if (klass.equals(spoon.reflect.declaration.CtAnnotationType.class)) {
return createAnnotationType();
}
if (klass.equals(spoon.reflect.declaration.CtAnonymousExecutable.class)) {
return createAnonymousExecutable();
}
if (klass.equals(spoon.reflect.declaration.CtClass.class)) {
return createClass();
}
if (klass.equals(spoon.reflect.declaration.CtConstructor.class)) {
return createConstructor();
}
if (klass.equals(spoon.reflect.declaration.CtEnum.class)) {
return createEnum();
}
if (klass.equals(spoon.reflect.declaration.CtEnumValue.class)) {
return createEnumValue();
}
if (klass.equals(spoon.reflect.declaration.CtField.class)) {
return createField();
}
if (klass.equals(spoon.reflect.declaration.CtInterface.class)) {
return createInterface();
}
if (klass.equals(spoon.reflect.declaration.CtMethod.class)) {
return createMethod();
}
if (klass.equals(spoon.reflect.declaration.CtPackage.class)) {
return createPackage();
}
if (klass.equals(spoon.reflect.declaration.CtParameter.class)) {
return createParameter();
}
if (klass.equals(spoon.reflect.declaration.CtTypeParameter.class)) {
return createTypeParameter();
}
if (klass.equals(spoon.reflect.reference.CtArrayTypeReference.class)) {
return createArrayTypeReference();
}
if (klass.equals(spoon.reflect.reference.CtCatchVariableReference.class)) {
return createCatchVariableReference();
}
if (klass.equals(spoon.reflect.reference.CtExecutableReference.class)) {
return createExecutableReference();
}
if (klass.equals(spoon.reflect.reference.CtFieldReference.class)) {
return createFieldReference();
}
if (klass.equals(spoon.reflect.reference.CtIntersectionTypeReference.class)) {
return createIntersectionTypeReference();
}
if (klass.equals(spoon.reflect.reference.CtLocalVariableReference.class)) {
return createLocalVariableReference();
}
if (klass.equals(spoon.reflect.reference.CtPackageReference.class)) {
return createPackageReference();
}
if (klass.equals(spoon.reflect.reference.CtParameterReference.class)) {
return createParameterReference();
}
if (klass.equals(spoon.reflect.reference.CtTypeParameterReference.class)) {
return createTypeParameterReference();
}
if (klass.equals(spoon.reflect.reference.CtTypeReference.class)) {
return createTypeReference();
}
if (klass.equals(spoon.reflect.reference.CtUnboundVariableReference.class)) {
return createUnboundVariableReference();
}
if (klass.equals(spoon.reflect.reference.CtWildcardReference.class)) {
return createWildcardReference();
}
throw new IllegalArgumentException("not instantiable by CoreFactory(): " + klass);
}
}