/** * Creates a local variable declaration. * * @param <T> * the local variable type * @param type * the reference to the type * @param name * the name of the variable * @param defaultExpression * the assigned default expression * @return a new local variable declaration */ public <T> CtLocalVariable<T> createLocalVariable(CtTypeReference<T> type, String name, CtExpression<T> defaultExpression) { return factory.Core().<T>createLocalVariable().<CtLocalVariable<T>>setSimpleName(name).<CtLocalVariable<T>>setType(type).setDefaultExpression(defaultExpression); }
public <T> void visitCtLocalVariable(final spoon.reflect.code.CtLocalVariable<T> localVariable) { spoon.reflect.code.CtLocalVariable<T> aCtLocalVariable = localVariable.getFactory().Core().createLocalVariable(); this.builder.copy(localVariable, aCtLocalVariable); aCtLocalVariable.setAnnotations(this.cloneHelper.clone(localVariable.getAnnotations())); aCtLocalVariable.setType(this.cloneHelper.clone(localVariable.getType())); aCtLocalVariable.setDefaultExpression(this.cloneHelper.clone(localVariable.getDefaultExpression())); aCtLocalVariable.setComments(this.cloneHelper.clone(localVariable.getComments())); this.cloneHelper.tailor(localVariable, aCtLocalVariable); this.other = aCtLocalVariable; }
/** * Creates a local variable declaration. * * @param <T> * the local variable type * @param type * the reference to the type * @param name * the name of the variable * @param defaultExpression * the assigned default expression * @return a new local variable declaration */ public <T> CtLocalVariable<T> createLocalVariable(CtTypeReference<T> type, String name, CtExpression<T> defaultExpression) { return factory.Core().<T>createLocalVariable().<CtLocalVariable<T>>setSimpleName(name).<CtLocalVariable<T>>setType(type).setDefaultExpression(defaultExpression); }
public static <T> CtLocalVariable<T> newLocalVariable(Factory factory, Class<T> aClass, String variableName) { CtLocalVariable<T> variable = factory.Core().createLocalVariable(); variable.setType((CtTypeReference<T>) newTypeReference(factory, aClass).unbox()); variable.setSimpleName(variableName); return variable; }
@Override public boolean visit(LocalDeclaration localDeclaration, BlockScope scope) { CtLocalVariable<Object> v = factory.Core().createLocalVariable(); v.setSimpleName(new String(localDeclaration.name)); v.setType(references.getTypeReference(localDeclaration.type.resolvedType)); v.setModifiers(getModifiers(localDeclaration.modifiers)); context.enter(v, localDeclaration); if (localDeclaration.initialization != null) { context.arguments.push(v); localDeclaration.initialization.traverse(this, scope); context.arguments.pop(); } if (localDeclaration.annotations != null) { for (Annotation a : localDeclaration.annotations) { // TODO Sorry for that but there is a bug in JDT : https://bugs.eclipse.org/bugs/show_bug.cgi?id=459528 if (isContainsInTypeAnnotation(localDeclaration.type.resolvedType, a)) { a.traverse(this, scope); } } } return false; }