The ValueListHandlers architecture has three divisions.

  1. 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.

  2. 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.

  3. 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.