1
0
mirror of https://github.com/DanilaFe/abacus synced 2026-01-27 09:05:19 +00:00

Add stop button

This commit is contained in:
Riley Jones
2017-08-03 14:04:09 -07:00
parent c7b5d4c4fc
commit dad546c5b5
6 changed files with 96 additions and 26 deletions

View File

@@ -92,10 +92,19 @@ public class BinaryNode extends TreeNode {
@Override
public <T> T reduce(Reducer<T> reducer) {
if(Thread.currentThread().isInterrupted())
return null;
T leftReduce = left.reduce(reducer);
if(Thread.currentThread().isInterrupted())
return null;
T rightReduce = right.reduce(reducer);
if (leftReduce == null || rightReduce == null) return null;
return reducer.reduceNode(this, leftReduce, rightReduce);
if(Thread.currentThread().isInterrupted())
return null;
T a = reducer.reduceNode(this, leftReduce, rightReduce);
if(Thread.currentThread().isInterrupted())
return null;
return a;
}
@Override

View File

@@ -62,12 +62,20 @@ public class FunctionNode extends TreeNode {
@Override
public <T> T reduce(Reducer<T> reducer) {
if(Thread.currentThread().isInterrupted())
return null;
Object[] reducedChildren = new Object[children.size()];
for (int i = 0; i < reducedChildren.length; i++) {
reducedChildren[i] = children.get(i).reduce(reducer);
if (reducedChildren[i] == null) return null;
}
return reducer.reduceNode(this, reducedChildren);
//System.out.println(Thread.currentThread().isInterrupted());
if(Thread.currentThread().isInterrupted())
return null;
T a = reducer.reduceNode(this, reducedChildren);
if(Thread.currentThread().isInterrupted())
return null;
return a;
}
@Override

View File

@@ -33,9 +33,16 @@ public class UnaryNode extends TreeNode {
@Override
public <T> T reduce(Reducer<T> reducer) {
if(Thread.currentThread().isInterrupted())
return null;
Object reducedChild = applyTo.reduce(reducer);
if (reducedChild == null) return null;
return reducer.reduceNode(this, reducedChild);
if(Thread.currentThread().isInterrupted())
return null;
T a = reducer.reduceNode(this, reducedChild);
if(Thread.currentThread().isInterrupted())
return null;
return a;
}
/**