From d2af58b0f68ebfbba2be7e7679efec6c8c0af12f Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Thu, 9 Feb 2017 11:50:31 -0500 Subject: Update --- .../bjc/utils/funcutils/GroupPartIteration.java | 27 +++++++++++----------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'BJC-Utils2/src/main/java/bjc/utils/funcutils/GroupPartIteration.java') diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcutils/GroupPartIteration.java b/BJC-Utils2/src/main/java/bjc/utils/funcutils/GroupPartIteration.java index 81781f6..229d271 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcutils/GroupPartIteration.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcutils/GroupPartIteration.java @@ -17,10 +17,13 @@ import bjc.utils.funcdata.IList; */ final class GroupPartIteration implements Consumer { private IList> returnedList; + private IHolder> currentPartition; private IList rejectedItems; + private IHolder numberInCurrentPartition; private int numberPerPartition; + private Function elementCounter; public GroupPartIteration(IList> returned, @@ -37,26 +40,24 @@ final class GroupPartIteration implements Consumer { @Override public void accept(E value) { - if (numberInCurrentPartition - .unwrap((number) -> number >= numberPerPartition)) { - returnedList.add( - currentPartition.unwrap((partition) -> partition)); + if (numberInCurrentPartition.unwrap((number) -> number >= numberPerPartition)) { + returnedList.add(currentPartition.unwrap((partition) -> partition)); - currentPartition - .transform((partition) -> new FunctionalList<>()); + currentPartition.transform((partition) -> new FunctionalList<>()); numberInCurrentPartition.transform((number) -> 0); } else { int currentElementCount = elementCounter.apply(value); - if (numberInCurrentPartition.unwrap((number) -> (number - + currentElementCount) >= numberPerPartition)) { + boolean shouldReject = numberInCurrentPartition.unwrap((number) -> { + return (number + currentElementCount) >= numberPerPartition; + }); + + if (shouldReject) { rejectedItems.add(value); } else { - currentPartition - .unwrap((partition) -> partition.add(value)); - numberInCurrentPartition.transform( - (number) -> number + currentElementCount); + currentPartition.unwrap((partition) -> partition.add(value)); + numberInCurrentPartition.transform((number) -> number + currentElementCount); } } } -} \ No newline at end of file +} -- cgit v1.2.3