@Override public <T> void visitCtTypeReference(CtTypeReference<T> reference) { if (!(reference instanceof CtArrayTypeReference)) { addReference(reference); } super.visitCtTypeReference(reference); }
/** * Generically scans an object that can be an element, a reference, or a * collection of those. */ public void scan(Object o) { scan(null, o); } /**
@Override public void enter(CtElement element) { counter.enter++; super.enter(element); }
@Override public <T extends Enum<?>> void visitCtEnum(CtEnum<T> ctEnum) { addClassImport(ctEnum.getReference()); super.visitCtEnum(ctEnum); }
@Override public <A extends Annotation> void visitCtAnnotationType( CtAnnotationType<A> annotationType) { addClassImport(annotationType.getReference()); super.visitCtAnnotationType(annotationType); }
@Override public <T> void visitCtFieldReference(CtFieldReference<T> reference) { CtField<T> declaration = reference.getDeclaration(); if (declaration == null) { return; } if (!declaration.hasParent(clone)) { throw new SpoonException("post condition broken " + reference); } super.visitCtFieldReference(reference); }
@Override public <T> void visitCtClass(CtClass<T> ctClass) { addClassImport(ctClass.getReference()); for (CtTypeMember t : ctClass.getTypeMembers()) { if (!(t instanceof CtType)) { continue; } addClassImport(((CtType) t).getReference()); } super.visitCtClass(ctClass); }
@Override public <T> void visitCtFieldRead(CtFieldRead<T> fieldRead) { super.visitCtFieldRead(fieldRead); enter(fieldRead); scan(fieldRead.getVariable()); scan(fieldRead.getAnnotations()); scan(fieldRead.getTypeCasts()); scan(fieldRead.getVariable()); scan(fieldRead.getTarget()); exit(fieldRead); }
@Override public <T> void visitCtCatchVariable(CtCatchVariable<T> catchVariable) { for (CtTypeReference<?> type : catchVariable.getMultiTypes()) { addClassImport(type); } super.visitCtCatchVariable(catchVariable); }
@Override public void scan(CtElement element) { counterInclNull.scan++; if (element != null) { counter.scan++; } super.scan(element); }
/** * Pushes the element. */ @Override protected void enter(CtElement e) { elementsDeque.push(e); super.enter(e); } }
@Override public <T extends Enum<?>> void visitCtEnum(CtEnum<T> ctEnum) { addReference(ctEnum.getReference()); super.visitCtEnum(ctEnum); }
@Override public <A extends Annotation> void visitCtAnnotationType( CtAnnotationType<A> annotationType) { addReference(annotationType.getReference()); super.visitCtAnnotationType(annotationType); }
@Override public <T> void visitCtFieldReference(CtFieldReference<T> reference) { CtField<T> declaration = reference.getDeclaration(); if (declaration == null) { return; } if (declaration.hasParent(type)) { reference.getDeclaringType().setSimpleName(cloneTypeName); } super.visitCtFieldReference(reference); }
@Override public <T> void visitCtClass(CtClass<T> ctClass) { addReference(ctClass.getReference()); for (CtTypeMember typeMember : ctClass.getTypeMembers()) { if (typeMember instanceof CtType) { addReference(((CtType) typeMember).getReference()); } } super.visitCtClass(ctClass); } }
@Override public <T> void visitCtFieldRead(CtFieldRead<T> fieldRead) { super.visitCtFieldRead(fieldRead); add(fieldRead); }
@Override public <T> void visitCtCatchVariable(CtCatchVariable<T> catchVariable) { for (CtTypeReference<?> type : catchVariable.getMultiTypes()) { addImport(type); } super.visitCtCatchVariable(catchVariable); }
@Override public <T> void visitCtTypeReference(CtTypeReference<T> reference) { if (reference.getDeclaration() == null) { return; } if (reference.getDeclaration() == type) { reference.setSimpleName(cloneTypeName); } super.visitCtTypeReference(reference); }