Defines core interfaces and classes.
Overview
A {@link Model} provides the minimum functionality that is
required for the application to work. A {@link Extension}
is an extension to a model that provides additional, optional
functionality. A Model
may be queried if it supports
a specific Extension
. This also supports to follow the
Interface Segregation Principle
In JPivot an OLAP result is a Model
because its
functionality is required to display a table or chart. Navigations
are optional Extension
s hat may be supported by some OLAP
server but not necessary by all of them.
Class Diagram
Support Classes
{@link ModelFactory}, {@link ModelSupport} and {@link ExtensionSupport}
are default implementations that may be used to derive from.