The net.lemnik.eodsql.spi.util package contains many helper classes to aid in the creation of third-party QueryFactories and MethodImplementations. The package is mostly focused on providing the automatic binding mechanism used in the standard QueryFactory.

The classes in this package are capable of automatically wrap a ResultSet in all the standard type: arrays, List, Set, Collection, DataSet and DataIterator. The package is also used to create bindings to the base data-object's (which can also be customized).

How this package is arranged

The Query class is responsible for decoding EoD SQL query strings. It doesn't decode the SQL contained in a query (and therefore could contain any query language).

ResultSetWrapper is both the parent class and the registry for classes that wrap a ResultSet object in another object format. Thus a ResultSetWrapper implementation is generally responsible for creating the objects returned from annotated methods.

Some of the ResultSetWrapper implementations include additional parameters that may be passed to them when they are created. These are usually bound to an attribute on their related annotation type.

A ResultSetWrapper generally delegates the "row" binding to a DataObjectBinding object. A DataObjectBinding is either bound to a specific type (excluding any sub-types) or as a fallback (or default) binding.