@Override public TypeKind getTypeKind() { return isInterface() ? TypeKind.INTERFACE : TypeKind.CLASS; }
@Override public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { if (node.isInterface()) { return data; } return super.visit(node, data); }
/** * Returns true if this method declaration is a member of an interface type. */ public boolean isInterfaceMember() { // for a real class/interface the 3rd parent is a ClassOrInterfaceDeclaration, // for anonymous classes, the parent is e.g. a AllocationExpression Node potentialTypeDeclaration = getNthParent(3); return potentialTypeDeclaration instanceof ASTClassOrInterfaceDeclaration && ((ASTClassOrInterfaceDeclaration) potentialTypeDeclaration).isInterface(); }
@Override public Object visit(ASTClassOrInterfaceDeclaration clz, Object data) { if (clz.isInterface()) { return data; } return super.visit(clz, data); }
@Override public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { if (node.isInterface()) { return data; } return super.visit(node, data); }
@Override public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { if (node.isInterface()) { return data; } return super.visit(node, data); }
@Override public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { if (node.isInterface()) { return data; } return super.visit(node, data); }
@Override public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { if (node.isInterface()) { return data; // don't consider interfaces } return super.visit(node, data); }
@Override public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { if (node.isInterface()) { return data; } return super.visit(node, data); }
@Override public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { if (node.isInterface()) { return data; } return super.visit(node, data); }
@Override public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { if (node.isInterface()) { return data; } return super.visit(node, data); }
@Override public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { if (node.isInterface()) { return data; } return super.visit(node, data); }
@Override public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { if (node.isInterface()) { return data; } return super.visit(node, data); }
/** * Returns the superclass type node if this node is a class * declaration and explicitly declares an {@code extends} * clause. Superinterfaces of an interface are not considered. * * <p>Returns {@code null} otherwise. */ public ASTClassOrInterfaceType getSuperClassTypeNode() { if (isInterface()) { return null; } ASTExtendsList extendsList = getFirstChildOfType(ASTExtendsList.class); return extendsList == null ? null : extendsList.iterator().next(); }
/** * Returns the interfaces implemented by this class, or * extended by this interface. Returns an empty list if * none is specified. */ public List<ASTClassOrInterfaceType> getSuperInterfacesTypeNodes() { Iterable<ASTClassOrInterfaceType> it = isInterface() ? getFirstChildOfType(ASTExtendsList.class) : getFirstChildOfType(ASTImplementsList.class); return it == null ? Collections.<ASTClassOrInterfaceType>emptyList() : CollectionUtil.toList(it.iterator()); }
@Override public String toString() { if (node instanceof ASTClassOrInterfaceDeclaration) { if (((ASTClassOrInterfaceDeclaration) node).isInterface()) { return "Interface " + node.getImage(); } else { return "Class " + node.getImage(); } } else { return "Enum " + node.getImage(); } }
private boolean isJunit3Test(ASTMethodDeclaration node) { if (!node.getMethodName().startsWith("test")) { return false; } // Considers anonymous classes, TODO with #905 this will be easier Node parent = node.getFirstParentOfAnyType(ASTEnumConstant.class, ASTAllocationExpression.class, ASTAnyTypeDeclaration.class); if (!(parent instanceof ASTClassOrInterfaceDeclaration) || ((ASTClassOrInterfaceDeclaration) parent).isInterface()) { return false; } ASTClassOrInterfaceType superClass = ((ASTClassOrInterfaceDeclaration) parent).getSuperClassTypeNode(); return superClass != null && TypeHelper.isA(superClass, "junit.framework.TestCase"); }
public boolean isInterfaceMember() { if (getNthParent(2) instanceof ASTEnumBody) { return false; } ASTClassOrInterfaceBody classOrInterfaceBody = getFirstParentOfType(ASTClassOrInterfaceBody.class); if (classOrInterfaceBody == null || classOrInterfaceBody.isAnonymousInnerClass()) { return false; } if (classOrInterfaceBody.jjtGetParent() instanceof ASTClassOrInterfaceDeclaration) { ASTClassOrInterfaceDeclaration n = (ASTClassOrInterfaceDeclaration) classOrInterfaceBody.jjtGetParent(); return n.isInterface(); } return false; }
private void checkDeclarationInInterfaceType(Object data, Node fieldOrMethod, Set<Modifier> unnecessary) { // third ancestor could be an AllocationExpression // if this is a method in an anonymous inner class Node parent = fieldOrMethod.jjtGetParent().jjtGetParent().jjtGetParent(); if (parent instanceof ASTAnnotationTypeDeclaration || parent instanceof ASTClassOrInterfaceDeclaration && ((ASTClassOrInterfaceDeclaration) parent).isInterface()) { reportUnnecessaryModifiers(data, fieldOrMethod, unnecessary, "the " + getPrintableNodeKind(fieldOrMethod) + " is declared in an " + getPrintableNodeKind(parent) + " type"); } }
@Override public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { if (node.isAbstract()) { checkMatches(node, abstractClassRegex, data); } else if (isUtilityClass(node)) { checkMatches(node, utilityClassRegex, data); } else if (node.isInterface()) { checkMatches(node, interfaceRegex, data); } else { checkMatches(node, classRegex, data); } return data; }