Java Lambda Compose Project
Jeffrey D. Smith
Principal Product Architect
Farsight Systems Corporation
Release Notes
2017-08-11a-JDS
1. Minor updates to Scan and Chain classes.
2017-08-02a-JDS
1. Added Chain class to wrap Iterable instance created by the Scan methods. This emulates stream-chaining.
2017-07-30a-JDS
1. Added Scan.takeWhile() and Scan.dropWhile() methods.
2015-04-28a-JDS
1. Compose added methods to compose Runnable instances and to
apply a function transform to a Callable.
2014-12-30b-JDS
1. Scan.parallel method now waits until the end of all started tasks.
2014-12-30a-JDS
1. Deleted parallel package. See JavaMutex project for 100% Pure Java concurrent parallel processing utilities.
2. Changed Scan.parallel method to use a specified Executor to dispatch the work units.
2014-12-26a-JDS
1. Changes to WorkPool, WorkUnit classes to mirror the JavaMutex versions.
2014-12-21a-JDS
1. Refactored the parallel package to the same level as
the other packages, function and stream.
2014-12-19a-JDS
1. Bug fix in PortalAbstract.java.
2014-12-18a-JDS
1. Restructured stream.parallel package.
2014-12-17a-JDS
1. Added stream.parallel package to support Scan.parallel()
method for dispatching an Iterator across multiple worker
threads.
2014-12-05a-JDS
1. Minor JavaDoc improvements to the Scan class.
2. Minor performance improvement to the Scan.SplitIterator constructor.
2014-11-30a-JDS
1. Added Scan.split() method to split an Iterator.
2014-11-20b-JDS
1. Minor fix to the wrapped Iterator for the Scan.FilterIterator
wrapper class to allow calling Iterator.next() without an
intervening call to Iterator.hasNext(). Not good style, but not
prevented by API documentation for Iterator.
2014-11-20a-JDS
1. Minor fix to the wrapped Iterator for the Scan.filter
method.
2014-11-19b-JDS
1. Added Scan.filter(Iterable,Predicate) method.
2014-11-19a-JDS
1. Added Scan.count(Iterable,Predicate) method.
2014-11-08a-JDS
1. Removed superfluous nested class Scan.SkipIterator<G>.
2014-11-04b-JDS
1. Added null pointer tests to Scan.skip() and Scan.limit().
2014-11-04a-JDS
1. Added Scan.skip() to generate a wrapper Iterable that
skips the specified number of iterator elements.
2. Added Scan.limit() to generate a wrapper Iterable that
limits the specified number of iterator elements.
2014-11-02a-JDS
1. Adjusted some javadoc.
2014-08-10a-JDS
1. Added Scan utilities allMatch, anyMatch, noneMatch without
a transform function parameter.
2014-08-07a-JDS
1. Added consumer(function,consumers) methods to Compose class.
2014-08-04b-JDS
1. Added missing utility methods to BiCompose for biAny, biNone.
2014-08-04a-JDS
1. Add more BiCompose utility methods.
2014-08-03a-JDS
1. Add more utility methods for BiCompose and Scan classes.
2014-08-02b-JDS
1. Minor variable name change in Scan class.
2014-08-02a-JDS
1. Changed references from List to Collection to generalize
the stream utility methods to all subtypes of Collection.
2014-08-01a-JDS
1. Add more scanning methods to Scan class. findAny and
findFirst return an Optional of the matching element or
Optional.empty() for not found. allMatch, anyMatch, and
noneMatch return a boolean result for scanning the List
with the specified Predicate.
2014-07-31a-JDS
1. Add BiCompose.biConsumer(BiPredicate,BiFunction,BiConsumer).
2. Scan class added "final" keyword for class. Consolidated
some function compositions.
2014-07-30a-JDS
1. Moved extraneous utility methods out of Splitter
class into a new Scan class.
2014-07-21c-JDS
1. Class BiCompose changed generic signature of
biConsumer(BiFunction,BiConsumer).
2. Class Splitter changed processEach method to use BiCompose
and simple nested forEach() loops.
2014-07-21b-JDS
1. Class BiCompose added more ifAll, ifAny, ifNone methods.
2. Class Compose added more ifAll, ifAny, ifNone methods.
3. Added some coding examples in BiCompose javadoc.
2014-07-21a-JDS
1. Class BiCompose added methods ifAll, ifAny, ifNone, and
ifThenOrElse to process one or more BiPredicate instances
and then to call the ifThen path for a true test or to call
the orElse path for a false test.
2014-07-20a-JDS
1. Class Compose added methods ifAll, ifAny, ifNone, and
ifThenOrElse to process one or more Predicate instances
and then to call the ifThen path for a true test or to call
the orElse path for a false test.
2014-07-18a-JDS
1. Compose class added methods to compose predicates,
functions, and consumers.
2014-07-10a-JDS
1. BiCompose class added two biFunction composition methods.
2014-07-09b-JDS
1. Splitter class added processEach method for generalized
processing of BiPredicate, BiFunction, and BiConsumer.
2014-07-09a-JDS
1. Splitter class adjusted processFirst and processAny
methods to allow two parameter types that correspond to
the elements of listAlpha and listBeta.
2014-07-08b-JDS
1. Renamed methods in BiCompose to have "bi" prefix.
2014-07-08a-JDS
1. Add BiCompose class for composing BiPredicate and
BiConsumer references.
2014-06-30a-JDS
1. Minor cosmetic changes to Splitter class.
2014-06-29b-JDS
1. Separated Splitter.process into processFirst and processAny.
2014-06-29a-JDS
1. Refactored common processing in Splitter.split to a
public static method for better code reusability.
2014-06-25a-JDS
1. More efficiency in Splitter.split to consolidate redundant
lambda expressions.
2014-06-24a-JDS
1. Improved efficiency of Splitter.split to detect removed
elements.
2014-06-22a-JDS
1. Splitter.split method now requires pre-sorted lists to
improve search efficiency.
2014-06-20a-JDS
1. Added a stream package with a utility class Splitter for
splitting a List according to a reference List and client
Comparators.
2014-06-18a-JDS
1. Fixed generic type declarations.
2014-06-17a-JDS
1. Added Compose.concatenate methods.
2014-06-12a-JDS
1. Minor change to generic types in the Compose class.
2014-06-11b-JDS
1. Changed all List to Iterable to improve usability
with other kinds of Collection.
2014-06-11a-JDS
1. Minor Javadoc fix.
2014-06-10a-JDS
1. Initial release.