@Override public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { ASTCompilationUnit acu = node.getFirstParentOfType(ASTCompilationUnit.class); List<ASTImportDeclaration> imports = acu.findChildrenOfType(ASTImportDeclaration.class); int increment = imports.size(); if (!acu.findChildrenOfType(ASTPackageDeclaration.class).isEmpty()) { increment++; } ((MutableInt) data).add(increment); return super.visit(node, data); } }
/** * Determines all the class/interface declarations inside this compilation * unit, which implement Cloneable * * @param currentClass * the node of the class, that is currently analyzed (inside this * compilation unit) * @return a Set of class/interface names */ private Set<String> determineTopLevelCloneableClasses(final ASTClassOrInterfaceDeclaration currentClass) { final List<ASTClassOrInterfaceDeclaration> classes = currentClass.getFirstParentOfType(ASTCompilationUnit.class) .findDescendantsOfType(ASTClassOrInterfaceDeclaration.class); final Set<String> classesNames = new HashSet<>(); for (final ASTClassOrInterfaceDeclaration c : classes) { if (!Objects.equals(c, currentClass) && extendsOrImplementsCloneable(c)) { classesNames.add(c.getImage()); } } return classesNames; }
@Override public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { if (countImports) { ASTCompilationUnit acu = node.getFirstParentOfType(ASTCompilationUnit.class); List<ASTImportDeclaration> imports = acu.findChildrenOfType(ASTImportDeclaration.class); int increment = imports.size(); if (!acu.findChildrenOfType(ASTPackageDeclaration.class).isEmpty()) { increment++; } ((MutableInt) data).add(increment); } ((MutableInt) data).increment(); return super.visit(node, data); }
if (clazz != null && clazz.getFirstParentOfType(ASTClassOrInterfaceDeclaration.class) != null) { violation = false; break; // Optimization
@Override public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { ASTCompilationUnit acu = node.getFirstParentOfType(ASTCompilationUnit.class); List<ASTImportDeclaration> imports = acu.findChildrenOfType(ASTImportDeclaration.class); int increment = imports.size(); if (!acu.findChildrenOfType(ASTPackageDeclaration.class).isEmpty()) { increment++; } ((MutableInt) data).add(increment); return super.visit(node, data); } }
/** * Determines all the class/interface declarations inside this compilation * unit, which implement Cloneable * * @param currentClass * the node of the class, that is currently analyzed (inside this * compilation unit) * @return a Set of class/interface names */ private Set<String> determineTopLevelCloneableClasses(final ASTClassOrInterfaceDeclaration currentClass) { final List<ASTClassOrInterfaceDeclaration> classes = currentClass.getFirstParentOfType(ASTCompilationUnit.class) .findDescendantsOfType(ASTClassOrInterfaceDeclaration.class); final Set<String> classesNames = new HashSet<>(); for (final ASTClassOrInterfaceDeclaration c : classes) { if (!Objects.equals(c, currentClass) && extendsOrImplementsCloneable(c)) { classesNames.add(c.getImage()); } } return classesNames; }
@Override public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { if (countImports) { ASTCompilationUnit acu = node.getFirstParentOfType(ASTCompilationUnit.class); List<ASTImportDeclaration> imports = acu.findChildrenOfType(ASTImportDeclaration.class); int increment = imports.size(); if (!acu.findChildrenOfType(ASTPackageDeclaration.class).isEmpty()) { increment++; } ((MutableInt) data).add(increment); } ((MutableInt) data).increment(); return super.visit(node, data); }
if (clazz != null && clazz.getFirstParentOfType(ASTClassOrInterfaceDeclaration.class) != null) { violation = false; break; // Optimization