The ValueListHandlers architecture has three divisions.
Convert the interface of a class into another interface clients expect.[GoF] The adapters do exactly that. They allow the ValueListHandler to retrieve the data from a "client" without any knowledge of the underlying source and implementation.
This is the only area of the ValueListHandler that a developer may have to contribute to. This is done by implementing the interface: ValueListAdapter.
The architecture for the core ValueListHandler service is very simple.
There is the ValueListHandler interface which has currently one implementation: DefaultValueListHandlerImpl. The DefaultValueListHandlerImpl is configured via Spring. See the configuration details in the overview for how to add adapters to the service.
The ValueListHandler has one method, that method returns a ValueList. A ValueList contains a List and ValueListInfo.
The view division is the largest part of the ValueListHandler codebase. This was not our intention, but we could not find a good set of view components that fit our requiremnts. So the ValueListHandler developers created components to view the ValueList in a web environment.