diff --git a/src/kernel/operation/BinaryOperation.java b/src/kernel/operation/BinaryOperation.java index 6181112..c7cd7c4 100644 --- a/src/kernel/operation/BinaryOperation.java +++ b/src/kernel/operation/BinaryOperation.java @@ -42,16 +42,10 @@ abstract public class BinaryOperation implements Formula, Serializable { @Override public boolean createCycle(Cell cell) { - if (this.leftCell.containFormula() && !this.rightCell.containFormula()) - return this.leftCell.getFormula().createCycle(cell); + if (this.createCycleWith(this.leftCell, cell) || this.createCycleWith(this.rightCell, cell)) + return true; - if (!this.leftCell.containFormula() && this.rightCell.containFormula()) - return this.rightCell.getFormula().createCycle(cell); - - if (this.leftCell.containFormula() && this.rightCell.containFormula()) - return this.leftCell.getFormula().createCycle(cell) && this.rightCell.getFormula().createCycle(cell); - - return (cell.getId().equals(this.rightCell.getId()) || cell.getId().equals(this.leftCell.getId())); + return this.rightCell.equals(cell) || this.leftCell.equals(cell); } @Override @@ -62,4 +56,8 @@ abstract public class BinaryOperation implements Formula, Serializable { return cells; } + + private boolean createCycleWith(Cell cell, Cell current) { + return cell.containFormula() && cell.getFormula().createCycle(current); + } } -- libgit2 0.21.2