private List<ASTConstructorDeclaration> findAllConstructors(ASTClassOrInterfaceDeclaration node) { return node.getFirstChildOfType(ASTClassOrInterfaceBody.class) .findDescendantsOfType(ASTConstructorDeclaration.class); } }
@Override public List<ASTAnyTypeBodyDeclaration> getDeclarations() { return getFirstChildOfType(ASTClassOrInterfaceBody.class) .findChildrenOfType(ASTAnyTypeBodyDeclaration.class); }
@Override public Object visit(ASTClassOrInterfaceBody node, Object data) { if (node.isAnonymousInnerClass() || node.isEnumChild()) { createClassScope(node); cont(node); } else { super.visit(node, data); } return data; }
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; }
@Override public Object visit(ASTClassOrInterfaceBody node, Object data) { int n = node.jjtGetNumChildren(); List<ASTFieldDeclaration> fields = new ArrayList<>(); Set<String> methodNames = new HashSet<>(); for (int i = 0; i < n; i++) { Node child = node.jjtGetChild(i); if (child.jjtGetNumChildren() == 0) { continue; } child = child.jjtGetChild(child.jjtGetNumChildren() - 1); if (child instanceof ASTFieldDeclaration) { fields.add((ASTFieldDeclaration) child); } else if (child instanceof ASTMethodDeclaration) { methodNames.add(((ASTMethodDeclaration) child).getMethodName().toLowerCase(Locale.ROOT)); } } for (ASTFieldDeclaration field : fields) { String varName = field.getVariableName().toLowerCase(Locale.ROOT); if (methodNames.contains(varName)) { addViolation(data, field, field.getVariableName()); } } return super.visit(node, data); }
final public void ClassOrInterfaceBody() throws ParseException { ASTClassOrInterfaceBody jjtn000 = new ASTClassOrInterfaceBody(this, JJTCLASSORINTERFACEBODY); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); jjtn000.jjtSetFirstToken(getToken(1)); try { jj_consume_token(LBRACE); if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); jjtn000.jjtSetLastToken(getToken(0));
@Override public Object visit(ASTClassOrInterfaceBody decl, Object data) { if (decl.jjtGetParent() instanceof ASTClassOrInterfaceDeclaration) { ASTClassOrInterfaceDeclaration parent = (ASTClassOrInterfaceDeclaration) decl.jjtGetParent(); if (parent.isAbstract() || parent.isInterface() || parent.getSuperClassTypeNode() != null) { return data; int i = decl.jjtGetNumChildren(); int methodCount = 0; boolean isOK = false; while (i > 0) { Node p = decl.jjtGetChild(--i); if (p.jjtGetNumChildren() == 0) { continue;
public boolean isEnumChild() { return jjtGetParent() instanceof ASTEnumConstant; } }
final public void ClassOrInterfaceBody() throws ParseException { ASTClassOrInterfaceBody jjtn000 = new ASTClassOrInterfaceBody(this, JJTCLASSORINTERFACEBODY); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); jjtn000.jjtSetFirstToken(getToken(1)); try { jj_consume_token(LBRACE); if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); jjtn000.jjtSetLastToken(getToken(0));
@Override public Object visit(ASTClassOrInterfaceBody decl, Object data) { if (decl.jjtGetParent() instanceof ASTClassOrInterfaceDeclaration) { ASTClassOrInterfaceDeclaration parent = (ASTClassOrInterfaceDeclaration) decl.jjtGetParent(); if (parent.isAbstract() || parent.isInterface() || parent.getSuperClassTypeNode() != null) { return data; int i = decl.jjtGetNumChildren(); int methodCount = 0; boolean isOK = false; while (i > 0) { Node p = decl.jjtGetChild(--i); if (p.jjtGetNumChildren() == 0) { continue;
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; }
@Override public Object visit(ASTClassOrInterfaceBody node, Object data) { int n = node.jjtGetNumChildren(); List<ASTFieldDeclaration> fields = new ArrayList<>(); Set<String> methodNames = new HashSet<>(); for (int i = 0; i < n; i++) { Node child = node.jjtGetChild(i); if (child.jjtGetNumChildren() == 0) { continue; } child = child.jjtGetChild(child.jjtGetNumChildren() - 1); if (child instanceof ASTFieldDeclaration) { fields.add((ASTFieldDeclaration) child); } else if (child instanceof ASTMethodDeclaration) { methodNames.add(((ASTMethodDeclaration) child).getMethodName().toLowerCase(Locale.ROOT)); } } for (ASTFieldDeclaration field : fields) { String varName = field.getVariableName().toLowerCase(Locale.ROOT); if (methodNames.contains(varName)) { addViolation(data, field, field.getVariableName()); } } return super.visit(node, data); }
public boolean isAnonymousInnerClass() { return jjtGetParent() instanceof ASTAllocationExpression; }
private List<ASTConstructorDeclaration> findAllConstructors(ASTClassOrInterfaceDeclaration node) { return node.getFirstChildOfType(ASTClassOrInterfaceBody.class) .findDescendantsOfType(ASTConstructorDeclaration.class); } }
@Override public Object visit(ASTClassOrInterfaceBody node, Object data) { if (node.isAnonymousInnerClass() || node.isEnumChild()) { createClassScope(node); cont(node); } else { super.visit(node, data); } return data; }
public boolean isEnumChild() { return jjtGetParent() instanceof ASTEnumConstant; } }
@Override public List<ASTAnyTypeBodyDeclaration> getDeclarations() { return getFirstChildOfType(ASTClassOrInterfaceBody.class) .findChildrenOfType(ASTAnyTypeBodyDeclaration.class); }
@Override public Object visit(ASTClassOrInterfaceBody node, Object data) { List<ASTMethodDeclaration> methods = node.findDescendantsOfType(ASTMethodDeclaration.class); if (methods.size() > getProperty(propertyDescriptor)) { addViolation(data, node); } return super.visit(node, data); } }
public boolean isAnonymousInnerClass() { return jjtGetParent() instanceof ASTAllocationExpression; }