JGA builds on the Generic Java compiler, providing standard algorithms that are not currently provided in JSR-14, functors and predicates, and implementations of common java classes that are adapted for use with generics.
See: Description
Packages | |
---|---|
net.sf.jga.fn | Provides base definitions for Functors, Predicates, Visitors. |
net.sf.jga.fn.adaptor | Provides Functors that allow assembly of primitive functors into compound structures. |
net.sf.jga.fn.algorithm | Provides utilities that apply Functors and Predicates to common situations. |
net.sf.jga.fn.arithmetic | Provides simple arithmetic Functors for Number classes. |
net.sf.jga.fn.comparison | Provides Functors and Predicates that compare values of various types. |
net.sf.jga.fn.logical | Provides Functors and Predicates that implement boolean logic. |
net.sf.jga.fn.property | Provides Functors and Predicates that operate on Java Objects that observe the bean standard naming convention. |
net.sf.jga.fn.string | Provides Functors and Predicates that operate on Strings. |
net.sf.jga.swing | Provides implementations of standard Swing models and objects that use Functors as a means of varying behaviour at construction. |
net.sf.jga.util | Provides Facade objects for working with the algorithm functors, and a variety of utility iterators for various purposes. |
The goal of this project is to provide functionality roughly analogous to the portions of the C++ STL library that are not already provided by the Generic Java package. The primary functionality to be provided is:
a set of functors and predicates that may be applied both the the generic collections and to other areas of the standard java library.
basic utility algorithms for use with java collections such as those found in STL
implementations of standard java classes that are intended to be user-derivable that apply the algorithms and functors for general benefit (for example, implementations of standard swing models that take advantage of predicates and functors)
We will not necessarily reproduce STL in all of its details: where Java and C++ provide different interpretations of standard design patterns, we will stay true to standard Java practices in order to be as comfortable for Java programmers to adopt as is practical. We will also not necessarily be limited by the scope or approach of STL
jga requires Java 1.4: you may run programs written using jga with any 1.4 compliant runtime, and you may develop programs with any 1.4 compliant development environment, although you may not use the generic features unless you have the java generic compiler prototype.
To use the generic programming features requires the JSR014 Prototype compiler.