From 889fac2bdf993dc86f64a8893c0260fdcf848acb Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Mon, 10 Apr 2017 16:40:33 -0400 Subject: Cleanup --- .../bjc/utils/data/TopDownTransformIterator.java | 92 +++++++++++----------- 1 file changed, 44 insertions(+), 48 deletions(-) (limited to 'BJC-Utils2/src/main/java/bjc/utils/data/TopDownTransformIterator.java') diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/TopDownTransformIterator.java b/BJC-Utils2/src/main/java/bjc/utils/data/TopDownTransformIterator.java index 14548a3..014458b 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/TopDownTransformIterator.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/TopDownTransformIterator.java @@ -1,5 +1,7 @@ package bjc.utils.data; +import static bjc.utils.data.TopDownTransformResult.RTRANSFORM; + import java.util.Deque; import java.util.Iterator; import java.util.LinkedList; @@ -8,34 +10,31 @@ import java.util.function.BiFunction; import java.util.function.Consumer; import java.util.function.Function; -import static bjc.utils.data.TopDownTransformResult.RTRANSFORM; - - /* * FIXME something is broken in here. fix it. */ @SuppressWarnings("javadoc") public class TopDownTransformIterator implements Iterator> { - private Function picker; - private BiFunction, Consumer>>, ITree> transform; + private final Function picker; + private final BiFunction, Consumer>>, ITree> transform; private ITree preParent; private ITree postParent; - private Deque> preChildren; - private Deque> postChildren; + private final Deque> preChildren; + private final Deque> postChildren; private TopDownTransformIterator curChild; private boolean done; private boolean initial; - private Deque>> toYield; - private Iterator> curYield; + private final Deque>> toYield; + private Iterator> curYield; - public TopDownTransformIterator(Function pickr, - BiFunction, Consumer>>, ITree> transfrm, - ITree tree) { + public TopDownTransformIterator(final Function pickr, + final BiFunction, Consumer>>, ITree> transfrm, + final ITree tree) { preParent = tree; preChildren = new LinkedList<>(); @@ -49,8 +48,8 @@ public class TopDownTransformIterator implements Iterator> src) { - if(curYield != null) { + public void addYield(final Iterator> src) { + if (curYield != null) { toYield.push(curYield); } @@ -62,55 +61,52 @@ public class TopDownTransformIterator implements Iterator flushYields(ITree val) { - if(curYield != null) { + public ITree flushYields(final ITree val) { + if (curYield != null) { toYield.add(new SingleIterator<>(val)); - if(curYield.hasNext()) + if (curYield.hasNext()) return curYield.next(); else { - while(toYield.size() != 0 && !curYield.hasNext()) { + while (toYield.size() != 0 && !curYield.hasNext()) { curYield = toYield.pop(); } - if(toYield.size() == 0 && !curYield.hasNext()) { + if (toYield.size() == 0 && !curYield.hasNext()) { curYield = null; return val; - } else - return curYield.next(); + } else return curYield.next(); } - } else - return val; + } else return val; } @Override public ITree next() { - if(done) throw new NoSuchElementException(); + if (done) throw new NoSuchElementException(); - if(curYield != null) { - if(curYield.hasNext()) + if (curYield != null) { + if (curYield.hasNext()) return curYield.next(); else { - while(toYield.size() != 0 && !curYield.hasNext()) { + while (toYield.size() != 0 && !curYield.hasNext()) { curYield = toYield.pop(); } - if(toYield.size() == 0 && !curYield.hasNext()) { + if (toYield.size() == 0 && !curYield.hasNext()) { curYield = null; - } else - return curYield.next(); + } else return curYield.next(); } } - if(initial) { - TopDownTransformResult res = picker.apply(preParent.getHead()); + if (initial) { + final TopDownTransformResult res = picker.apply(preParent.getHead()); - switch(res) { + switch (res) { case PASSTHROUGH: postParent = new Tree<>(preParent.getHead()); - if(preParent.getChildrenCount() != 0) { - for(int i = 0; i < preParent.getChildrenCount(); i++) { + if (preParent.getChildrenCount() != 0) { + for (int i = 0; i < preParent.getChildrenCount(); i++) { preChildren.add(preParent.getChild(i)); } @@ -130,8 +126,8 @@ public class TopDownTransformIterator implements Iterator implements Iterator intRes = transform.apply(preParent, this::addYield); + final ITree intRes = transform.apply(preParent, this::addYield); postParent = new Tree<>(intRes.getHead()); - if(intRes.getChildrenCount() != 0) { - for(int i = 0; i < intRes.getChildrenCount(); i++) { + if (intRes.getChildrenCount() != 0) { + for (int i = 0; i < intRes.getChildrenCount(); i++) { preChildren.add(intRes.getChild(i)); } @@ -162,16 +158,16 @@ public class TopDownTransformIterator implements Iterator(picker, transform, preChildren.pop()); - ITree res = curChild.next(); + final ITree res = curChild.next(); System.out.println("\t\tTRACE: adding node " + res + " to children"); postChildren.add(res); @@ -179,12 +175,12 @@ public class TopDownTransformIterator implements Iterator res = null; - if(postParent == null) { + if (postParent == null) { res = new Tree<>(preParent.getHead()); System.out.println("\t\tTRACE: adding nodes " + postChildren + " to " + res); - for(ITree child : postChildren) { + for (final ITree child : postChildren) { res.addChild(child); } @@ -194,7 +190,7 @@ public class TopDownTransformIterator implements Iterator child : postChildren) { + for (final ITree child : postChildren) { res.addChild(child); } } @@ -203,7 +199,7 @@ public class TopDownTransformIterator implements Iterator res = curChild.next(); + final ITree res = curChild.next(); System.out.println("\t\tTRACE: adding node " + res + " to children"); postChildren.add(res); -- cgit v1.2.3