Provides page instance for request handlers. Each of the constructors has just enough information to get existing or create new page instance. Requesting or creating page instance is deferred until {@link #getPageInstance()} is called.
Purpose of this class is to reduce complexity of both {@link IRequestMapper}s and {@link IRequestHandler}s. {@link IRequestMapper} examines the URL, gathers all relevantinformation about the page in the URL (combination of page id, page class, page parameters and render count), creates {@link PageProvider} object and creates a {@link IRequestHandler} instancethat can use the {@link PageProvider} to access the page.
Apart from simplifying {@link IRequestMapper}s and {@link IRequestHandler}s {@link PageProvider}also helps performance because creating or obtaining page from {@link IPageManager} is delayeduntil the {@link IRequestHandler} actually requires the page.
@author Matej Knopp