/** * Determines whether a method can be overridden. * * @return true if the method can be overridden. */ public static boolean methodCanBeOverridden(MethodSymbol methodSymbol) { if (methodSymbol.getModifiers().contains(Modifier.ABSTRACT)) { return true; } if (methodSymbol.isStatic() || methodSymbol.isPrivate() || isFinal(methodSymbol) || methodSymbol.isConstructor()) { return false; } ClassSymbol classSymbol = (ClassSymbol) methodSymbol.owner; return !isFinal(classSymbol) && !classSymbol.isAnonymous(); }
if (classSymbol == null || classSymbol.isAnonymous()) { return Description.NO_MATCH;
endIndent().printIndent().print("}"); if (!getScope().interfaceScope && !getScope().declareClassScope && !getScope().enumScope && !(getScope().enumWrapperClassScope && classdecl.sym.isAnonymous())) { if (!classdecl.sym.isAnonymous()) { println().printIndent() .print(getScope().enumWrapperClassScope ? classdecl.sym.getSimpleName().toString() : name)
if (!c.isAnonymous()) {
if (classSymbol == null || classSymbol.isAnonymous()) { return Description.NO_MATCH;
public void checkClassOverrideEqualsAndHashIfNeeded(DiagnosticPosition pos, ClassSymbol someClass) { /* At present, annotations cannot possibly have a method that is override * equivalent with Object.equals(Object) but in any case the condition is * fine for completeness. */ if (someClass == (ClassSymbol)syms.objectType.tsym || someClass.isInterface() || someClass.isEnum() || (someClass.flags() & ANNOTATION) != 0 || (someClass.flags() & ABSTRACT) != 0) return; //anonymous inner classes implementing interfaces need especial treatment if (someClass.isAnonymous()) { List<Type> interfaces = types.interfaces(someClass.type); if (interfaces != null && !interfaces.isEmpty() && interfaces.head.tsym == syms.comparatorType.tsym) return; } checkClassOverrideEqualsAndHash(pos, someClass); }
public void checkClassOverrideEqualsAndHashIfNeeded(DiagnosticPosition pos, ClassSymbol someClass) { /* At present, annotations cannot possibly have a method that is override * equivalent with Object.equals(Object) but in any case the condition is * fine for completeness. */ if (someClass == (ClassSymbol)syms.objectType.tsym || someClass.isInterface() || someClass.isEnum() || (someClass.flags() & ANNOTATION) != 0 || (someClass.flags() & ABSTRACT) != 0) return; //anonymous inner classes implementing interfaces need especial treatment if (someClass.isAnonymous()) { List<Type> interfaces = types.interfaces(someClass.type); if (interfaces != null && !interfaces.isEmpty() && interfaces.head.tsym == syms.comparatorType.tsym) return; } checkClassOverrideEqualsAndHash(pos, someClass); }
/** * Determines whether a method can be overridden. * * @return true if the method can be overridden. */ public static boolean methodCanBeOverridden(MethodSymbol methodSymbol) { if (methodSymbol.getModifiers().contains(Modifier.ABSTRACT)) { return true; } if (methodSymbol.isStatic() || methodSymbol.isPrivate() || isFinal(methodSymbol) || methodSymbol.isConstructor()) { return false; } ClassSymbol classSymbol = (ClassSymbol) methodSymbol.owner; return !isFinal(classSymbol) && !classSymbol.isAnonymous(); }
private static String getClassName(ClassSymbol s) { if (s.isAnonymous()) { return s.getSuperclass().tsym.getSimpleName().toString(); } else { return s.getSimpleName().toString(); } }
private static String getClassName(ClassSymbol s) { if (s.isAnonymous()) { return s.getSuperclass().tsym.getSimpleName().toString(); } else { return s.getSimpleName().toString(); } }