I now had some time to look at your contribution, which, in general is really great.
There are several areas, as Gilles already pointed, which need more work, see my comments below:
- there are lots of API changes, which means that we either have to wait for 4.0 to integrate
or find a way to extend the existing API in a backwards compatible way
- there are currently no tests attached, which would be a requirement for new features to be added
- do you know how to configure checkstyle in your environment?
we have a configuration file (see checkstyle.xml) for our usual coding style, and if patches conform to these rules it
is much easier to integrate them, if you have any questions related to it, do not hesitate to ask
- interface naming: we prefer not to use I prefix for interfaces
- javadoc: it is required that any public/protected and classes have a proper javadoc to describe its use
- java 6/7 features: as we still use Java 5 on source level, @Override annotations are not allowed for methods
implementing an interface
I will take a deeper look into the class hierarchy, but wanted to give you a quick feedback first.