private static boolean isDuplicate(ListTree<TypeTree> superInterfaces, TypeTree currentInterfaceTree) { for (TypeTree superInterfaceTree : superInterfaces) { if (!currentInterfaceTree.equals(superInterfaceTree) && SyntacticEquivalence.areEquivalent(currentInterfaceTree, superInterfaceTree)) { return true; } } return false; }
private static boolean areEquivalent(@Nullable JavaTree leftNode, @Nullable JavaTree rightNode) { if (leftNode == rightNode) { return true; } if (leftNode == null || rightNode == null) { return false; } if (leftNode.kind() != rightNode.kind() || leftNode.is(Tree.Kind.OTHER)) { return false; } else if (leftNode.isLeaf()) { return areLeafsEquivalent(leftNode, rightNode); } Iterator<Tree> iteratorA = leftNode.getChildren().iterator(); Iterator<Tree> iteratorB = rightNode.getChildren().iterator(); while (iteratorA.hasNext() && iteratorB.hasNext()) { if (!areEquivalent(iteratorA.next(), iteratorB.next())) { return false; } } return !iteratorA.hasNext() && !iteratorB.hasNext(); }
private static boolean isDuplicate(ListTree<TypeTree> superInterfaces, TypeTree currentInterfaceTree) { for (TypeTree superInterfaceTree : superInterfaces) { if (!currentInterfaceTree.equals(superInterfaceTree) && SyntacticEquivalence.areEquivalent(currentInterfaceTree, superInterfaceTree)) { return true; } } return false; }
private static boolean areEquivalent(@Nullable JavaTree leftNode, @Nullable JavaTree rightNode) { if (leftNode == rightNode) { return true; } if (leftNode == null || rightNode == null) { return false; } if (leftNode.kind() != rightNode.kind() || leftNode.is(Tree.Kind.OTHER)) { return false; } else if (leftNode.isLeaf()) { return areLeafsEquivalent(leftNode, rightNode); } Iterator<Tree> iteratorA = leftNode.getChildren().iterator(); Iterator<Tree> iteratorB = rightNode.getChildren().iterator(); while (iteratorA.hasNext() && iteratorB.hasNext()) { if (!areEquivalent(iteratorA.next(), iteratorB.next())) { return false; } } return !iteratorA.hasNext() && !iteratorB.hasNext(); }
/** * @return true, if nodes are syntactically equivalent */ public static boolean areEquivalent(@Nullable Tree leftNode, @Nullable Tree rightNode) { return areEquivalent((JavaTree) leftNode, (JavaTree) rightNode); }
private static boolean areEquivalent(@Nullable JavaTree leftNode, @Nullable JavaTree rightNode) { if (leftNode == rightNode) { return true; } if (leftNode == null || rightNode == null) { return false; } if (leftNode.kind() != rightNode.kind() || leftNode.is(Tree.Kind.OTHER)) { return false; } else if (leftNode.isLeaf()) { return areLeafsEquivalent(leftNode, rightNode); } Iterator<Tree> iteratorA = leftNode.children().iterator(); Iterator<Tree> iteratorB = rightNode.children().iterator(); while (iteratorA.hasNext() && iteratorB.hasNext()) { if (!areEquivalent(iteratorA.next(), iteratorB.next())) { return false; } } return !iteratorA.hasNext() && !iteratorB.hasNext(); }
/** * @return true, if nodes are syntactically equivalent */ public static boolean areEquivalent(@Nullable Tree leftNode, @Nullable Tree rightNode) { return areEquivalent((JavaTree) leftNode, (JavaTree) rightNode); }
private static boolean areEquivalent(@Nullable JavaTree leftNode, @Nullable JavaTree rightNode) { if (leftNode == rightNode) { return true; } if (leftNode == null || rightNode == null) { return false; } if (leftNode.getKind() != rightNode.getKind()) { return false; } else if (leftNode.isLeaf()) { return areLeafsEquivalent(leftNode, rightNode); } else if (leftNode.getKind() == Tree.Kind.OTHER) { return false; } Iterator<Tree> iteratorA = leftNode.childrenIterator(); Iterator<Tree> iteratorB = rightNode.childrenIterator(); while (iteratorA.hasNext() && iteratorB.hasNext()) { if (!areEquivalent(iteratorA.next(), iteratorB.next())) { return false; } } return !iteratorA.hasNext() && !iteratorB.hasNext(); }
/** * @return true, if nodes are syntactically equivalent */ public static boolean areEquivalent(@Nullable Tree leftNode, @Nullable Tree rightNode) { return areEquivalent((JavaTree) leftNode, (JavaTree) rightNode); }
/** * @return true, if nodes are syntactically equivalent */ public static boolean areEquivalent(@Nullable Tree leftNode, @Nullable Tree rightNode) { return areEquivalent((JavaTree) leftNode, (JavaTree) rightNode); }
/** * @return true, if nodes are syntactically equivalent */ public static boolean areEquivalent(List<? extends Tree> leftList, List<? extends Tree> rightList) { if (leftList.size() != rightList.size()) { return false; } for (int i = 0; i < leftList.size(); i++) { Tree left = leftList.get(i); Tree right = rightList.get(i); if (!areEquivalent(left, right)) { return false; } } return true; }
/** * @return true, if nodes are syntactically equivalent */ public static boolean areEquivalent(List<? extends Tree> leftList, List<? extends Tree> rightList) { if (leftList.size() != rightList.size()) { return false; } for (int i = 0; i < leftList.size(); i++) { Tree left = leftList.get(i); Tree right = rightList.get(i); if (!areEquivalent(left, right)) { return false; } } return true; }
/** * @return true, if nodes are syntactically equivalent */ public static boolean areEquivalent(List<? extends Tree> leftList, List<? extends Tree> rightList) { if (leftList.size() != rightList.size()) { return false; } for (int i = 0; i < leftList.size(); i++) { Tree left = leftList.get(i); Tree right = rightList.get(i); if (!areEquivalent(left, right)) { return false; } } return true; }
/** * @return true, if nodes are syntactically equivalent */ public static boolean areEquivalent(List<? extends Tree> leftList, List<? extends Tree> rightList) { if(leftList.size()!= rightList.size()) { return false; } for(int i =0; i<leftList.size();i++) { Tree left = leftList.get(i); Tree right = rightList.get(i); if(!areEquivalent(left, right)) { return false; } } return true; } /**
private static IfElseChain collectIdenticalBranches(List<StatementTree> allBranches) { IfElseChain ifElseChain = new IfElseChain(); for (int i = 0; i < allBranches.size(); i++) { if (ifElseChain.branches.containsValue(allBranches.get(i))) { continue; } for (int j = i + 1; j < allBranches.size(); j++) { if (SyntacticEquivalence.areEquivalent(allBranches.get(i), allBranches.get(j))) { ifElseChain.branches.put(allBranches.get(i), allBranches.get(j)); } } } ifElseChain.totalBranchCount = allBranches.size(); return ifElseChain; }
private static IfElseChain collectIdenticalBranches(List<StatementTree> allBranches) { IfElseChain ifElseChain = new IfElseChain(); for (int i = 0; i < allBranches.size(); i++) { if (ifElseChain.branches.containsValue(allBranches.get(i))) { continue; } for (int j = i + 1; j < allBranches.size(); j++) { if (SyntacticEquivalence.areEquivalent(allBranches.get(i), allBranches.get(j))) { ifElseChain.branches.put(allBranches.get(i), allBranches.get(j)); } } } ifElseChain.totalBranchCount = allBranches.size(); return ifElseChain; }
private static boolean concatenateVariable(ExpressionTree variable, ExpressionTree operand) { if (operand.is(Tree.Kind.PLUS)) { return concatenateVariable(variable, (BinaryExpressionTree) operand); } return SyntacticEquivalence.areEquivalent(variable, operand); }
private static boolean nullCheckWithInstanceOf(ExpressionTree leftOp, ExpressionTree rightOp, Tree.Kind binaryExpressionKind, Tree.Kind expectedKind) { ExpressionTree binaryVariable = Optional.ofNullable(binaryExpressionVariable(leftOp)) .orElse(binaryExpressionVariable(rightOp)); if (binaryVariable == null || binaryExpressionKind != expectedKind) { return false; } ExpressionTree instanceofVariable = Optional.ofNullable(instanceofFound(rightOp, binaryExpressionKind)) .orElse(instanceofFound(leftOp, binaryExpressionKind)); return instanceofVariable != null && SyntacticEquivalence.areEquivalent(binaryVariable, instanceofVariable); }
private static boolean nullCheckWithInstanceOf(ExpressionTree leftOp, ExpressionTree rightOp, Tree.Kind binaryExpressionKind, Tree.Kind expectedKind) { ExpressionTree binaryVariable = Optional.ofNullable(binaryExpressionVariable(leftOp)) .orElse(binaryExpressionVariable(rightOp)); if (binaryVariable == null || binaryExpressionKind != expectedKind) { return false; } ExpressionTree instanceofVariable = Optional.ofNullable(instanceofFound(rightOp, binaryExpressionKind)) .orElse(instanceofFound(leftOp, binaryExpressionKind)); return instanceofVariable != null && SyntacticEquivalence.areEquivalent(binaryVariable, instanceofVariable); }
private boolean concatenateVariable(ExpressionTree variable, ExpressionTree operand) { if(operand.is(Tree.Kind.PLUS)) { return concatenateVariable(variable, (BinaryExpressionTree) operand); } return SyntacticEquivalence.areEquivalent(variable, operand); }