@Override public Void visitMethodDeclaration(final MethodDeclaration node, final Void p) { tryAddOverrideAnnotation(node); tryAddDeprecatedAnnotationToMember(node); return super.visitMethodDeclaration(node, p); }
@Override public Void visitTypeDeclaration(final TypeDeclaration typeDeclaration, final Void p) { tryAddDeprecatedAnnotationToType(typeDeclaration); return super.visitTypeDeclaration(typeDeclaration, p); }
@Override public Void visitEnumValueDeclaration(final EnumValueDeclaration node, final Void data) { tryAddDeprecatedAnnotationToMember(node); return super.visitEnumValueDeclaration(node, data); }
private void tryAddDeprecatedAnnotationToType(final TypeDeclaration node) { if (any(node.getAnnotations(), IS_DEPRECATED_ANNOTATION)) { return; } final TypeDefinition type = node.getUserData(Keys.TYPE_DEFINITION); if (type == null || (type.getFlags() & Flags.DEPRECATED) != Flags.DEPRECATED) { return; } if (type.getCompilerMajorVersion() < CompilerTarget.JDK1_5.majorVersion) { return; } addAnnotation(node, type.getResolver(), DEPRECATED_ANNOTATION_NAME); }
new SimplifyArithmeticExpressionsTransform(context), new DeclareLocalClassesTransform(context), new AddStandardAnnotationsTransform(context), new AddReferenceQualifiersTransform(context), new RemoveHiddenMembersTransform(context),
@Override public Void visitConstructorDeclaration(final ConstructorDeclaration node, final Void p) { tryAddDeprecatedAnnotationToMember(node); return super.visitConstructorDeclaration(node, p); }
private void tryAddDeprecatedAnnotationToMember(final EntityDeclaration node) { if (any(node.getAnnotations(), IS_DEPRECATED_ANNOTATION)) { return; } IMemberDefinition member = node.getUserData(Keys.METHOD_DEFINITION); if (member == null) { member = node.getUserData(Keys.FIELD_DEFINITION); } if (member == null || (member.getFlags() & Flags.DEPRECATED) != Flags.DEPRECATED) { return; } final TypeReference declaringType = member.getDeclaringType(); final TypeDefinition resolvedType = declaringType instanceof TypeDefinition ? (TypeDefinition) declaringType : declaringType.resolve(); if (resolvedType == null || resolvedType.getCompilerMajorVersion() < CompilerTarget.JDK1_5.majorVersion) { return; } addAnnotation(node, resolvedType.getResolver(), DEPRECATED_ANNOTATION_NAME); }
@Override public Void visitFieldDeclaration(final FieldDeclaration node, final Void data) { tryAddDeprecatedAnnotationToMember(node); return super.visitFieldDeclaration(node, data); }