/**
* The root package for the bookmark feature.
*
* <p/>
*
* A <em>bookmark</em> is a concept used to capture and store application state in a manner
* that can be persisted and later retrieved, edited and/or re-applied.
*
* The domain model for the bookmark feature is provided in the {@link au.gov.ga.earthsci.bookmark.model}
* package.
*
* <p/>
*
* This package provides a number of interfaces for classes that can perform actions on components
* of the bookmark feature; and a number of factory classes used to access these components.
*
* <p/>
*
* New {@link au.gov.ga.earthsci.bookmark.model.IBookmark} instances can be created with the
* {@link au.gov.ga.earthsci.bookmark.BookmarkFactory#createBookmark createBookmark} method.
*
* <p/>
*
* The creation of {@link au.gov.ga.earthsci.bookmark.model.IBookmarkProperty}s is done through
* the {@link au.gov.ga.earthsci.bookmark.BookmarkPropertyFactory} class, which contains methods for
* creating instances from XML and from the current world state.
*
* The {@link au.gov.ga.earthsci.bookmark.BookmarkPropertyFactory} delegates actual creation of
* {@link au.gov.ga.earthsci.bookmark.model.IBookmarkProperty}s to registered
* {@link au.gov.ga.earthsci.bookmark.IBookmarkPropertyCreator} instances. These can be registered
* directly on the factory using {@link au.gov.ga.earthsci.bookmark.BookmarkPropertyFactory#registerCreator registerCreator},
* or (more flexibly) via the Eclipse extension point {@code au.gov.ga.earthsci.bookmark.creators}.
*
* <p/>
*
* The {@link au.gov.ga.earthsci.bookmark.BookmarkPropertyFactory} is also able to export
* {@link au.gov.ga.earthsci.bookmark.model.IBookmarkProperty} instances to XML using the
* {@link au.gov.ga.earthsci.bookmark.BookmarkPropertyFactory#exportProperty exportProperty} method.
*
* In this case, the factory delegates to registered {@link au.gov.ga.earthsci.bookmark.IBookmarkPropertyExporter}
* instances which are able to perform the property-specific export. Exporters can be registered
* directly on the factory using {@link au.gov.ga.earthsci.bookmark.BookmarkPropertyFactory#registerExporter registerExporter},
* or (more flexibly) via the Eclipse extension point {@code au.gov.ga.earthsci.bookmark.exporters}.
*
* <p/>
*
* The task of actually applying the state stored in an {@link au.gov.ga.earthsci.bookmark.model.IBookmarkProperty}
* to the world is handled by {@link au.gov.ga.earthsci.bookmark.IBookmarkPropertyApplicator}s. These
* are registered on the {@link au.gov.ga.earthsci.bookmark.BookmarkPropertyApplicatorRegistry} either directly
* using {@link au.gov.ga.earthsci.bookmark.BookmarkPropertyApplicatorRegistry#registerApplicator registerApplicator},
* or (more flexibly) via the Eclipse extension point {@code au.gov.ga.earthsci.bookmark.applicators}.
*
* @see au.gov.ga.earthsci.bookmark.model
* @see au.gov.ga.earthsci.bookmark.io
*/
package au.gov.ga.earthsci.bookmark;