private static boolean isDirectSubtypeOfThread(Symbol.TypeSymbol classSymbol) { Type superClass = classSymbol.superClass(); // Only 'java.lang.Object' has no super class return superClass != null && superClass.is(JAVA_LANG_THREAD); }
private static Symbol.VariableSymbol findSerialVersionUid(Symbol.TypeSymbol symbol) { for (Symbol member : symbol.lookupSymbols("serialVersionUID")) { if (member.isVariableSymbol()) { return (Symbol.VariableSymbol) member; } } return null; }
private static boolean isWithinJunit3TestCase(Symbol.MethodSymbol methodSymbol) { Type type = methodSymbol.owner().type(); return type.isSubtypeOf(JUNIT_FRAMEWORK_TEST_CASE) && !type.symbol().superClass().is(JUNIT_FRAMEWORK_TEST_CASE); }
private static boolean isMethodFromCollection(Symbol methodSymbol) { if (!methodSymbol.isMethodSymbol()) { return false; } Type ownerType = methodSymbol.owner().type(); return !ownerType.is("java.util.Collection") && ownerType.isSubtypeOf("java.util.Collection"); }
private static boolean isIteratorMethod(Symbol method) { Type type = method.owner().enclosingClass().type(); return !type.is("java.util.Iterator") && type.isSubtypeOf("java.util.Iterator"); }
private static boolean isOwnedBySerializable(Symbol.MethodSymbol methodSymbol) { Symbol.TypeSymbol owner = (Symbol.TypeSymbol) methodSymbol.owner(); return owner.type().isSubtypeOf("java.io.Serializable"); }
MethodReference(Symbol.MethodSymbol symbol) { methodSymbol = symbol; methodScopeOwner = methodSymbol.owner(); if (methodScopeOwner != null && methodScopeOwner.isTypeSymbol()) { nonStaticReference = !methodScopeOwner.isStatic() && !methodScopeOwner.owner().isPackageSymbol(); } }
private boolean checkStaticMethod(Tree reportTree, Symbol.MethodSymbol methodSymbol, Type superClass) { for (Symbol methodWithSameName : superClass.symbol().lookupSymbols(methodSymbol.name())) { if (methodWithSameName.isMethodSymbol() && hideStaticMethod(methodSymbol, superClass, methodWithSameName)) { reportIssue(reportTree, "Rename this method or make it \"static\"."); return true; } } return false; }
private static boolean nonNullVsNull(Symbol sym1, Symbol sym2) { return sym1.metadata().isAnnotatedWith(JAVAX_ANNOTATION_NONNULL) && (sym2.metadata().isAnnotatedWith(JAVAX_ANNOTATION_NULLABLE) || sym2.metadata().isAnnotatedWith(JAVAX_ANNOTATION_CHECK_FOR_NULL)); }
private static boolean isValidSerialVersionUid(Symbol.VariableSymbol serialVersionUidSymbol) { return serialVersionUidSymbol.isStatic() && serialVersionUidSymbol.isFinal() && serialVersionUidSymbol.type().isPrimitive(Type.Primitives.LONG); }
private boolean isWithinJunit3TestCase(Symbol.MethodSymbol methodSymbol) { Type type = methodSymbol.owner().type(); return type.isSubtypeOf(JUNIT_FRAMEWORK_TEST_CASE) && !type.symbol().superClass().is(JUNIT_FRAMEWORK_TEST_CASE); }
private boolean isMethodFromCollection(Symbol methodSymbol) { if(!methodSymbol.isMethodSymbol()) { return false; } Type ownerType = methodSymbol.owner().type(); return !ownerType.is("java.util.Collection") && ownerType.isSubtypeOf("java.util.Collection"); }
private static boolean nonNullVsNull(Symbol sym1, Symbol sym2) { return sym1.metadata().isAnnotatedWith(JAVAX_ANNOTATION_NONNULL) && (sym2.metadata().isAnnotatedWith(JAVAX_ANNOTATION_NULLABLE) || sym2.metadata().isAnnotatedWith(JAVAX_ANNOTATION_CHECK_FOR_NULL)); }
private static boolean isDirectSubtypeOfThread(Symbol.TypeSymbol classSymbol) { Type superClass = classSymbol.superClass(); // Only 'java.lang.Object' has no super class return superClass != null && superClass.is(JAVA_LANG_THREAD); }
private static Symbol.VariableSymbol findSerialVersionUid(Symbol.TypeSymbol symbol) { for (Symbol member : symbol.lookupSymbols("serialVersionUID")) { if (member.isVariableSymbol()) { return (Symbol.VariableSymbol) member; } } return null; }
private AbstractValue checkNullity(Symbol symbol) { if (symbol.metadata().isAnnotatedWith("javax.annotation.Nonnull")) { return AbstractValue.NOTNULL; } else if (symbol.metadata().isAnnotatedWith("javax.annotation.CheckForNull")) { return AbstractValue.NULL; } return AbstractValue.UNKNOWN; }