public <T> void visitCtField(spoon.reflect.declaration.CtField<T> e) { ((spoon.reflect.declaration.CtField<T>) (other)).setModifiers(e.getModifiers()); ((spoon.reflect.declaration.CtField<T>) (other)).setShadow(e.isShadow()); super.visitCtField(e); }
if ((f != null) && f.getModifiers().contains(ModifierKind.FINAL)) { setResult(evaluate(f.getDefaultExpression())); return;
public <T> void visitCtField(CtField<T> f) { visitCtNamedElement(f); writeModifiers(f); scan(f.getType()); write(" "); write(f.getSimpleName()); if ((!f.isParentInitialized()) || !CtAnnotationType.class.isAssignableFrom(f.getParent().getClass()) || f.getModifiers().contains(ModifierKind.STATIC)) { if (f.getDefaultExpression() != null) { write(" = "); scan(f.getDefaultExpression()); } } else { write("()"); if (f.getDefaultExpression() != null) { write(" default "); scan(f.getDefaultExpression()); } } write(";"); }
@Override public <T> void visitCtFieldAccess(CtFieldAccess<T> fieldAccess) { if (fieldAccess.getVariable().getSimpleName().equals("class")) { Class<?> c = fieldAccess.getVariable().getDeclaringType().getActualClass(); if (c != null) { CtLiteral<Class<?>> l = fieldAccess.getFactory().Core().createLiteral(); l.setValue(c); setResult(l); return; } } if (fieldAccess.getFactory().Type().createReference(Enum.class) .isAssignableFrom(fieldAccess.getVariable().getDeclaringType())) { CtLiteral<CtFieldReference<?>> l = fieldAccess.getFactory().Core().createLiteral(); l.setValue(fieldAccess.getVariable()); setResult(l); return; } CtField<?> f = fieldAccess.getVariable().getDeclaration(); if ((f != null) && f.getModifiers().contains(ModifierKind.FINAL)) { setResult(evaluate(f, f.getDefaultExpression())); return; } setResult(fieldAccess.getFactory().Core().clone(fieldAccess)); }