Package io.guise.framework
Interface GuiseApplication
-
- All Superinterfaces:
io.csar.Concerned
,com.globalmentor.beans.PropertyBindable
,com.globalmentor.net.Resource
- All Known Implementing Classes:
AbstractGuiseApplication
,DefaultGuiseApplication
public interface GuiseApplication extends com.globalmentor.net.Resource, com.globalmentor.beans.PropertyBindable, io.csar.Concerned
An application running Guise. To enable mail-related functionality, mail must be configured usingsetMailProperties(Map)
.- Author:
- Garret Wilson
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ENVIRONMENT_PROPERTY
The environment bound property.static com.globalmentor.net.URIPath
GUISE_ASSETS_AUDIO_PATH
The base path of audio assets, relative to the application.static com.globalmentor.net.URIPath
GUISE_ASSETS_BASE_PATH
The base path to access all Guise assets.static com.globalmentor.net.URIPath
GUISE_ASSETS_CABS_PATH
The base path of CAB assets, relative to the application.static com.globalmentor.net.URIPath
GUISE_ASSETS_DOCUMENTS_PATH
The base path of document assets, relative to the application.static com.globalmentor.net.URIPath
GUISE_ASSETS_DTD_PATH
The base path of DTD assets, relative to the application.static com.globalmentor.net.URIPath
GUISE_ASSETS_FLASH_PATH
The base path of Flash assets, relative to the application.static com.globalmentor.net.URIPath
GUISE_ASSETS_JAVASCRIPT_PATH
The base path of JavaScript assets, relative to the application.static com.globalmentor.net.URIPath
GUISE_ASSETS_TEMP_BASE_PATH
The base path to access all Guise temporary assets.static com.globalmentor.net.URIPath
GUISE_ASSETS_THEMES_PATH
The base path of theme assets, relative to the application.static com.globalmentor.net.URIPath
GUISE_BASIC_THEME_BASE_PATH
The base path of the basic Guise theme, relative to the application.static com.globalmentor.net.URIPath
GUISE_BASIC_THEME_PATH
The path of the basic Guise theme, relative to the application.static com.globalmentor.net.URIPath
GUISE_RESERVED_BASE_PATH
The base path reserved for exclusive Guise use.static com.globalmentor.net.URIPath
GUISE_ROOT_THEME_BASE_PATH
The base path of the default Guise theme, relative to the application.static com.globalmentor.net.URIPath
GUISE_ROOT_THEME_CURSORS_PATH
The base path of the default Guise theme cursors, relative to the application.static com.globalmentor.net.URIPath
GUISE_ROOT_THEME_PATH
The path of the root Guise theme, relative to the application.static java.lang.String
LOCALES_PROPERTY
The locales bound property.static java.lang.String
RESOURCE_BUNDLE_BASE_NAME_PROPERTY
The resource bundle base name bound property.static java.lang.String
STYLE_URI_PROPERTY
The style URI bound property.static java.lang.String
THEME_URI_PROPERTY
The theme URI bound property.static java.lang.String
THEMED_PROPERTY
The bound property of whether this application applies themes.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addDestination(Destination destination)
Registers a destination so that it can be matched against one or more paths.void
addDestination(Destination destination, boolean priority)
Registers a destination so that it can be matched against one or more paths.void
checkInstalled()
Checks to ensure that this application is installed.ApplicationFrame
createApplicationFrame()
Creates a frame for the application.GuiseSession
createSession(Platform platform)
Creates a new session for the application on the given platform.com.globalmentor.net.URIPath
createTempAsset(java.lang.String baseName, java.lang.String extension, GuiseSession restrictionSession)
Creates a temporary asset available at an application navigation path.java.net.URL
getAssetURL(com.globalmentor.net.URIPath path, GuiseSession guiseSession)
Returns a URL to the asset at the given path.com.globalmentor.net.URIPath
getBasePath()
Reports the base path of the application.GuiseContainer
getContainer()
java.lang.String
getDCSID()
java.net.URI
getDepictionURI(java.net.URI depictionRootURI, com.globalmentor.net.URIPath navigationPath)
Determines the depiction URI based upon a navigation path.java.net.URI
getDepictionURI(java.net.URI depictionRootURI, java.net.URI navigationURI)
Determines the depiction URI based upon a navigation URI.java.util.Optional<Destination>
getDestination(com.globalmentor.net.URIPath path)
Determines the destination associated with the given application context-relative path.java.lang.Iterable<Destination>
getDestinations()
Returns an iterable of destinations.Environment
getEnvironment()
java.util.Set<java.lang.String>
getFacebookAdminIDs()
Indicates the Facebook administrators, if any, for this application.java.util.Set<java.lang.String>
getFacebookAdminIDs(com.globalmentor.net.URIPath navigationPath)
Indicates the Facebook administrators, if any, for the given navigation path.java.lang.String
getFacebookAppID()
Indicates the Facebook application, if any.java.lang.String
getFacebookAppID(com.globalmentor.net.URIPath navigationPath)
Indicates the Facebook application, if any, for the given navigation path.java.io.File
getHomeDirectory()
Returns the home directory shared by all sessions of this application.java.io.InputStream
getInputStream(com.globalmentor.net.URIPath path)
Retrieves an input stream to the entity at the given path.java.io.InputStream
getInputStream(java.net.URI uri)
Retrieves an input stream to the entity at the given URI.java.lang.String
getLocaleResourcePath(java.lang.String resourceBasePath, java.util.Locale locale)
Determines the locale-sensitive path of the given resource path.java.util.List<java.util.Locale>
getLocales()
java.io.File
getLogDirectory()
Returns the log directory shared by all sessions of this application.java.io.Writer
getLogWriter(java.lang.String baseFilename, com.globalmentor.io.IOOperation<java.io.Writer> initializer, com.globalmentor.io.IOOperation<java.io.Writer> uninitializer)
Retrieves a writer suitable for recording log information for the application.java.util.Map<?,?>
getMailProperties()
Returns the properties of the mail manager.java.util.Queue<javax.mail.Message>
getMailSendQueue()
Retrieves the queue used to send mail.javax.mail.Session
getMailSession()
Retrieves the current mail session.com.globalmentor.net.URIPath
getNavigationPath(java.net.URI depictionURI)
Determines the logical navigation path based upon a requested depiction URI.java.io.OutputStream
getOutputStream(com.globalmentor.net.URIPath path)
Retrieves an output stream to the entity at the given path.java.io.OutputStream
getOutputStream(java.net.URI uri)
Retrieves an output stream to the entity at the given URI.java.lang.String
getResourceBundleBaseName()
java.io.InputStream
getResourceInputStream(java.lang.String resourcePath)
Retrieves an input stream to the resource at the given path.GuiseSession
getSession(java.util.UUID uuid)
Retrieves a Guise session for the given UUID.java.net.URI
getStyleURI()
java.io.File
getTempDirectory()
Returns the temporary directory shared by all sessions of this application.java.net.URI
getThemeURI()
boolean
hasAsset(com.globalmentor.net.URIPath path)
Determines whether this application has an asset at the given path.boolean
hasDestination(com.globalmentor.net.URIPath path)
Determines if there is a destination associated with the given application context-relative path.boolean
hasResource(java.lang.String resourcePath)
Determines if the application has a resource available stored at the given resource path.void
install(AbstractGuiseContainer container, java.net.URI baseURI, java.io.File homeDirectory, java.io.File logDirectory, java.io.File tempDirectory)
Installs the application into the given container at the given base URI.boolean
isDebug()
boolean
isInstalled()
boolean
isThemed()
java.util.Properties
loadProperties(java.lang.String propertiesPath)
Loads properties from a file in the home directory.java.util.ResourceBundle
loadResourceBundle(Theme theme, java.util.Locale locale)
Retrieves a resource bundle for the given theme in the given locale.Theme
loadTheme(java.net.URI themeURI)
Loads a theme from the given URI.void
registerSession(GuiseSession guiseSession)
Registers a session with this application.com.globalmentor.net.URIPath
relativizePath(com.globalmentor.net.URIPath path)
Changes an absolute path to an application-relative path.com.globalmentor.net.URIPath
relativizeURI(java.net.URI uri)
Changes a URI to an application-relative path.com.globalmentor.net.URIPath
resolvePath(com.globalmentor.net.URIPath path)
Resolves a relative or absolute path against the application base path.java.net.URI
resolveURI(java.net.URI uri)
Resolves a URI against the application base path.void
setDCSID(java.lang.String dcsID)
Sets the Data Collection Server log identifier.void
setDebug(boolean debug)
Enables or disables debug mode in the application.void
setDestinations(java.util.List<Destination> destinations)
Associates multiple destinations with application context-relative paths or path patterns.void
setEnvironment(Environment newEnvironment)
Sets the application local environment.void
setLocales(java.util.List<java.util.Locale> newLocales)
Sets the list of supported locales.void
setLogLevel(com.globalmentor.log.Log.Level level)
Sets the log level that will be logged.void
setMailProperties(java.util.Map<?,?> mailProperties)
Sets properties of the mail manager.void
setResourceBundleBaseName(java.lang.String newResourceBundleBaseName)
Changes the resource bundle base name.void
setStyleURI(java.net.URI newStyle)
Sets the URI of the style of the application.void
setThemed(boolean newThemed)
Sets whether the application applies themes.void
setThemeURI(java.net.URI newThemeURI)
Sets the URI of the application theme.void
uninstall(GuiseContainer container)
Uninstalls the application from the given container.void
unregisterSession(GuiseSession guiseSession)
Unregisters a session from this application.
-
-
-
Field Detail
-
ENVIRONMENT_PROPERTY
static final java.lang.String ENVIRONMENT_PROPERTY
The environment bound property.
-
LOCALES_PROPERTY
static final java.lang.String LOCALES_PROPERTY
The locales bound property.
-
RESOURCE_BUNDLE_BASE_NAME_PROPERTY
static final java.lang.String RESOURCE_BUNDLE_BASE_NAME_PROPERTY
The resource bundle base name bound property.
-
STYLE_URI_PROPERTY
static final java.lang.String STYLE_URI_PROPERTY
The style URI bound property.
-
THEME_URI_PROPERTY
static final java.lang.String THEME_URI_PROPERTY
The theme URI bound property.
-
THEMED_PROPERTY
static final java.lang.String THEMED_PROPERTY
The bound property of whether this application applies themes.
-
GUISE_RESERVED_BASE_PATH
static final com.globalmentor.net.URIPath GUISE_RESERVED_BASE_PATH
The base path reserved for exclusive Guise use.
-
GUISE_ASSETS_BASE_PATH
static final com.globalmentor.net.URIPath GUISE_ASSETS_BASE_PATH
The base path to access all Guise assets.
-
GUISE_ASSETS_TEMP_BASE_PATH
static final com.globalmentor.net.URIPath GUISE_ASSETS_TEMP_BASE_PATH
The base path to access all Guise temporary assets.
-
GUISE_ASSETS_AUDIO_PATH
static final com.globalmentor.net.URIPath GUISE_ASSETS_AUDIO_PATH
The base path of audio assets, relative to the application.
-
GUISE_ASSETS_CABS_PATH
static final com.globalmentor.net.URIPath GUISE_ASSETS_CABS_PATH
The base path of CAB assets, relative to the application.
-
GUISE_ASSETS_DOCUMENTS_PATH
static final com.globalmentor.net.URIPath GUISE_ASSETS_DOCUMENTS_PATH
The base path of document assets, relative to the application.
-
GUISE_ASSETS_DTD_PATH
static final com.globalmentor.net.URIPath GUISE_ASSETS_DTD_PATH
The base path of DTD assets, relative to the application.
-
GUISE_ASSETS_FLASH_PATH
static final com.globalmentor.net.URIPath GUISE_ASSETS_FLASH_PATH
The base path of Flash assets, relative to the application.
-
GUISE_ASSETS_JAVASCRIPT_PATH
static final com.globalmentor.net.URIPath GUISE_ASSETS_JAVASCRIPT_PATH
The base path of JavaScript assets, relative to the application.
-
GUISE_ASSETS_THEMES_PATH
static final com.globalmentor.net.URIPath GUISE_ASSETS_THEMES_PATH
The base path of theme assets, relative to the application.
-
GUISE_ROOT_THEME_BASE_PATH
static final com.globalmentor.net.URIPath GUISE_ROOT_THEME_BASE_PATH
The base path of the default Guise theme, relative to the application.
-
GUISE_ROOT_THEME_PATH
static final com.globalmentor.net.URIPath GUISE_ROOT_THEME_PATH
The path of the root Guise theme, relative to the application.
-
GUISE_BASIC_THEME_BASE_PATH
static final com.globalmentor.net.URIPath GUISE_BASIC_THEME_BASE_PATH
The base path of the basic Guise theme, relative to the application.
-
GUISE_BASIC_THEME_PATH
static final com.globalmentor.net.URIPath GUISE_BASIC_THEME_PATH
The path of the basic Guise theme, relative to the application.
-
GUISE_ROOT_THEME_CURSORS_PATH
static final com.globalmentor.net.URIPath GUISE_ROOT_THEME_CURSORS_PATH
The base path of the default Guise theme cursors, relative to the application.
-
-
Method Detail
-
isDebug
boolean isDebug()
- Returns:
- Whether this application is in debug mode.
-
setDebug
void setDebug(boolean debug)
Enables or disables debug mode in the application. In debug mode the application will present more information to the user, such as non-compressed JavaScript source code on the web platform.- Parameters:
debug
- Whether debug mode should be enabled.
-
getLocales
java.util.List<java.util.Locale> getLocales()
- Returns:
- The read-only non-empty list of locales supported by the application, with the first locale the default used if a new session cannot determine the users's preferred locale.
-
setLocales
void setLocales(java.util.List<java.util.Locale> newLocales)
Sets the list of supported locales. This is a bound property.- Parameters:
newLocales
- The new supported application locales.- Throws:
java.lang.NullPointerException
- if the given list of locales isnull
.java.lang.IllegalArgumentException
- if the given list of locales is empty.- See Also:
LOCALES_PROPERTY
-
getResourceBundleBaseName
java.lang.String getResourceBundleBaseName()
- Returns:
- The base name of the resource bundle to use for this application, or
null
if no custom resource bundle is specified for this application.
-
setResourceBundleBaseName
void setResourceBundleBaseName(java.lang.String newResourceBundleBaseName)
Changes the resource bundle base name. This is a bound property.- Parameters:
newResourceBundleBaseName
- The new base name of the resource bundle, ornull
if no custom resource bundle is specified for this application.- See Also:
RESOURCE_BUNDLE_BASE_NAME_PROPERTY
-
getEnvironment
Environment getEnvironment()
- Returns:
- The application local environment.
-
setEnvironment
void setEnvironment(Environment newEnvironment)
Sets the application local environment. This method will not normally be called directly from applications. This is a bound property.- Parameters:
newEnvironment
- The new application local environment.- Throws:
java.lang.NullPointerException
- if the given environment isnull
.- See Also:
ENVIRONMENT_PROPERTY
-
setLogLevel
void setLogLevel(com.globalmentor.log.Log.Level level)
Sets the log level that will be logged. Any log information at or above the given level will be logged.- Parameters:
level
- The minimum level to be logged.- Throws:
java.lang.NullPointerException
- if the given level isnull
.
-
getMailProperties
java.util.Map<?,?> getMailProperties()
Returns the properties of the mail manager. This method is guaranteed to return a non-null
value after the application is installed.- Returns:
- The properties of the mail manager.
- Throws:
java.lang.IllegalStateException
- if the application is installed into a container but the mail properties has not been configured.
-
setMailProperties
void setMailProperties(java.util.Map<?,?> mailProperties)
Sets properties of the mail manager.- Parameters:
mailProperties
- The new properties of the mail manager- Throws:
java.lang.NullPointerException
- if the given properties isnull
.java.lang.IllegalStateException
- if the application has already been installed into a container.
-
getMailSession
javax.mail.Session getMailSession()
Retrieves the current mail session.- Returns:
- This application's mail session.
- Throws:
java.lang.IllegalStateException
- if the application has not yet been installed into a container.java.lang.IllegalStateException
- if mail has not been configured for this application.
-
getMailSendQueue
java.util.Queue<javax.mail.Message> getMailSendQueue()
Retrieves the queue used to send mail. Mail added to this queue will be sent use the application's configured mail protocols.- Returns:
- The queue used for to send mail.
- Throws:
java.lang.IllegalStateException
- if the application has not yet been installed into a container.java.lang.IllegalStateException
- if mail has not been configured for this application.
-
isThemed
boolean isThemed()
- Returns:
- Whether the application applies themes.
-
setThemed
void setThemed(boolean newThemed)
Sets whether the application applies themes. This is a bound property of typeBoolean
.- Parameters:
newThemed
-true
if the application should apply themes, elsefalse
.- See Also:
THEMED_PROPERTY
-
getStyleURI
java.net.URI getStyleURI()
- Returns:
- The absolute or application-relative URI of the application style, or
null
if the default style should be used.
-
setStyleURI
void setStyleURI(java.net.URI newStyle)
Sets the URI of the style of the application. This is a bound property.- Parameters:
newStyle
- The URI of the application style, ornull
if the default style should be used.- See Also:
STYLE_URI_PROPERTY
-
getThemeURI
java.net.URI getThemeURI()
- Returns:
- The URI of the application theme, to be resolved against the application base path.
-
setThemeURI
void setThemeURI(java.net.URI newThemeURI)
Sets the URI of the application theme. This is a bound property.- Parameters:
newThemeURI
- The URI of the new application theme.- Throws:
java.lang.NullPointerException
- if the given theme URI isnull
.- See Also:
THEME_URI_PROPERTY
-
getDCSID
java.lang.String getDCSID()
- Returns:
- The identifier for logging to a Data Collection System such as WebTrends, or
null
if no DCS ID is known.
-
setDCSID
void setDCSID(java.lang.String dcsID)
Sets the Data Collection Server log identifier.- Parameters:
dcsID
- The identifier for logging to a Data Collection System such as WebTrends, ornull
if no DCS ID is known.
-
getNavigationPath
com.globalmentor.net.URIPath getNavigationPath(java.net.URI depictionURI)
Determines the logical navigation path based upon a requested depiction URI. This method must preserve paths beginning withGUISE_RESERVED_BASE_PATH
.- Parameters:
depictionURI
- The plain absolute depict URI.- Returns:
- The application-relative logical navigation path.
- Throws:
java.lang.NullPointerException
- if the given depiction URI isnull
.- See Also:
GUISE_RESERVED_BASE_PATH
-
getDepictionURI
java.net.URI getDepictionURI(java.net.URI depictionRootURI, com.globalmentor.net.URIPath navigationPath)
Determines the depiction URI based upon a navigation path.The requested navigation path is allowed to be in three forms:
- An absolute path, such as
/full/path/file.ext
, which is typically resolved to the root depiction URI. - A path relative to the application, such as
path/file.ext
, which is typically transformed if needed based upon hosts configured for sub-paths.
- Parameters:
depictionRootURI
- The plain, absolute, root URI depiction currently in use.navigationPath
- The logical navigation path, either relative to the application, or absolute to the host.- Returns:
- A URI suitable for depiction, resolved to the application base path.
- Throws:
java.lang.NullPointerException
- if the given navigation URI isnull
.
- An absolute path, such as
-
getDepictionURI
java.net.URI getDepictionURI(java.net.URI depictionRootURI, java.net.URI navigationURI)
Determines the depiction URI based upon a navigation URI.The requested navigation URI is allowed to be in three forms:
- An absolute URI, such as
http://www.cnn.com/
, which is typically returned unmodified. - A relative URI with an absolute path, such as
/full/path/file.ext
, which is typically resolved to the root depiction URI. - A relative URI with a path relative to the application, such as
path/file.ext
, which is typically transformed if needed based upon hosts configured for sub-paths.
- Parameters:
depictionRootURI
- The plain, absolute, root URI depiction currently in use.navigationURI
- The logical navigation URI, either absolute, relative to the application, or absolute to the host.- Returns:
- A URI suitable for depiction, resolved to the application base path.
- Throws:
java.lang.NullPointerException
- if the given navigation URI isnull
.
- An absolute URI, such as
-
addDestination
void addDestination(Destination destination)
Registers a destination so that it can be matched against one or more paths. Any existing destinations for the path or path pattern is replaced. Existing destinations will take priority if a path matches multiple destination path patterns.- Parameters:
destination
- The description of the destination at the application context-relative path or path pattern.- Throws:
java.lang.NullPointerException
- if the destination isnull
.
-
addDestination
void addDestination(Destination destination, boolean priority)
Registers a destination so that it can be matched against one or more paths. Any existing destinations for the path or path pattern is replaced.- Parameters:
destination
- The description of the destination at the application context-relative path or path pattern.priority
- Whether this destination takes priority over other destinations when there are multiple matches; if this destination has no path pattern, this parameter is ignored.- Throws:
java.lang.NullPointerException
- if the destination isnull
.
-
setDestinations
void setDestinations(java.util.List<Destination> destinations)
Associates multiple destinations with application context-relative paths or path patterns. All destinations are first cleared. Any existing destinations for the given context-relative paths are replaced.- Parameters:
destinations
- The destinations to set.
-
getDestination
java.util.Optional<Destination> getDestination(com.globalmentor.net.URIPath path)
Determines the destination associated with the given application context-relative path. This method first checks for a destination that matches the exact path as given; if no matching path is found, all destinations with path patterns are searched for a match.- Parameters:
path
- The address for which a destination should be retrieved.- Returns:
- The destination associated with the given path, which will not be present if no destination is associated with the path.
- Throws:
java.lang.IllegalArgumentException
- if the provided path is absolute.
-
getDestinations
java.lang.Iterable<Destination> getDestinations()
Returns an iterable of destinations. Any changes to the iterable will not necessarily be reflected in the destinations available to the application.- Returns:
- An iterable to the application's destinations.
-
hasDestination
boolean hasDestination(com.globalmentor.net.URIPath path)
Determines if there is a destination associated with the given application context-relative path. This method first checks for a destination that matches the exact path as given; if no matching path is found, all destinations with path patterns are searched for a match.- Parameters:
path
- The application context-relative path.- Returns:
true
if there is destination associated with the given path, orfalse
if no destination is associated with the given path.- Throws:
java.lang.NullPointerException
- if the path isnull
.java.lang.IllegalArgumentException
- if the provided path is absolute.
-
getContainer
GuiseContainer getContainer()
- Returns:
- The Guise container into which this application is installed, or
null
if the application is not yet installed.
-
createSession
GuiseSession createSession(Platform platform)
Creates a new session for the application on the given platform.- Parameters:
platform
- The platform on which this session's objects are depicted.- Returns:
- A new session for the application
- Throws:
java.lang.NullPointerException
- if the given platform isnull
.
-
registerSession
void registerSession(GuiseSession guiseSession)
Registers a session with this application. The Guise session has not yet been initialized when this method is called.- Parameters:
guiseSession
- The Guise session to register with this Guise application.- Throws:
java.lang.IllegalStateException
- if the given session has already been registered with this application.
-
unregisterSession
void unregisterSession(GuiseSession guiseSession)
Unregisters a session from this application. The Guise session has already been uninitialized when this method is called.- Parameters:
guiseSession
- The Guise session to unregister from this Guise application.- Throws:
java.lang.IllegalStateException
- if the given session is not registered with this application.
-
getSession
GuiseSession getSession(java.util.UUID uuid)
Retrieves a Guise session for the given UUID.- Parameters:
uuid
- The UUID of the Guise session to retrieve.- Returns:
- The Guise session associated with the given UUID, or
null
if no Guise session is associated with the given UUID. - Throws:
java.lang.NullPointerException
- if the given UUID isnull
.
-
createApplicationFrame
ApplicationFrame createApplicationFrame()
Creates a frame for the application.- Returns:
- A new frame for the application.
-
getBasePath
com.globalmentor.net.URIPath getBasePath()
Reports the base path of the application. The base path is an absolute path that ends with a slash ('/'), indicating the base path of the navigation panels.- Returns:
- The base path representing the Guise application, or
null
if the application is not yet installed.
-
getHomeDirectory
java.io.File getHomeDirectory()
Returns the home directory shared by all sessions of this application. This value is not available before the application is installed.- Returns:
- The home directory of the application.
- Throws:
java.lang.IllegalStateException
- if the application has not yet been installed into a container.
-
getLogDirectory
java.io.File getLogDirectory()
Returns the log directory shared by all sessions of this application. This value is not available before the application is installed.- Returns:
- The log directory of the application.
- Throws:
java.lang.IllegalStateException
- if the application has not yet been installed into a container.
-
getTempDirectory
java.io.File getTempDirectory()
Returns the temporary directory shared by all sessions of this application. This value is not available before the application is installed.- Returns:
- The temporary directory of the application.
- Throws:
java.lang.IllegalStateException
- if the application has not yet been installed into a container.
-
getLogWriter
java.io.Writer getLogWriter(java.lang.String baseFilename, com.globalmentor.io.IOOperation<java.io.Writer> initializer, com.globalmentor.io.IOOperation<java.io.Writer> uninitializer) throws java.io.IOException
Retrieves a writer suitable for recording log information for the application. The given base filename is appended with a representation of the current date. If a log writer for the same date is available, it is returned; otherwise, a new log writer is created. If the current date is a different day than that used for the current log writer for a given base filename, a new writer is created for the current date.- Parameters:
baseFilename
- The base filename (e.g. "base.log") that will be used in generating a log file for the current date (e.g. "base 2003-02-01.log").initializer
- The encapsulation of any initialization that should be performed on any new writer, ornull
if no initialization is requested.uninitializer
- The encapsulation of any uninitialization that should be performed on any new writer, ornull
if no uninitialization is requested.- Returns:
- The writer suitable for recording log information for the application.
- Throws:
java.io.IOException
- if there was an error connecting to the entity at the given URI.- See Also:
getLogDirectory()
-
isInstalled
boolean isInstalled()
- Returns:
- Whether this application has been installed into a container at some base path.
- See Also:
getContainer()
,getBasePath()
-
checkInstalled
void checkInstalled()
Checks to ensure that this application is installed.- Throws:
java.lang.IllegalStateException
- if the application is not installed.- See Also:
isInstalled()
-
install
void install(AbstractGuiseContainer container, java.net.URI baseURI, java.io.File homeDirectory, java.io.File logDirectory, java.io.File tempDirectory)
Installs the application into the given container at the given base URI. This method is called byGuiseContainer
and should not be called directly by applications.- Parameters:
container
- The Guise container into which the application is being installed.baseURI
- The base URI at which the application is being installed.homeDirectory
- The home directory of the application.logDirectory
- The log directory of the application.tempDirectory
- The temporary directory of the application.- Throws:
java.lang.NullPointerException
- if the container, base URI, home directory, log directory, and/or temporary directory isnull
.java.lang.IllegalArgumentException
- if the given base URI is not absolute or the path of which is not absolute or not a collection.java.lang.IllegalStateException
- if the application is already installed.
-
uninstall
void uninstall(GuiseContainer container)
Uninstalls the application from the given container. All log writers are closed. This method is called byGuiseContainer
and should not be called directly by applications.- Parameters:
container
- The Guise container into which the application is being installed.- Throws:
java.lang.IllegalStateException
- if the application is not installed or is installed into another container.
-
resolvePath
com.globalmentor.net.URIPath resolvePath(com.globalmentor.net.URIPath path)
Resolves a relative or absolute path against the application base path. Relative paths will be resolved relative to the application base path. Absolute paths will be be considered already resolved. For an application path "/path/to/application/", resolving "relative/path" will yield "/path/to/application/relative/path", while resolving "/absolute/path" will yield "/absolute/path".- Parameters:
path
- The path to be resolved.- Returns:
- The path resolved against the application base path.
- Throws:
java.lang.NullPointerException
- if the given path isnull
.java.lang.IllegalArgumentException
- if the provided path specifies a URI scheme (i.e. the URI is absolute) and/or authority (in which caseresolveURI(URI)
should be used instead).- See Also:
getBasePath()
,resolveURI(URI)
-
resolveURI
java.net.URI resolveURI(java.net.URI uri)
Resolves a URI against the application base path. Relative paths and "path" scheme URIs with relative paths will be resolved relative to the application base path. Absolute paths will be considered already resolved, as will absolute URIs. For an application base path "/path/to/application/", resolving "path:relative/path" or "relative/path" will yield "/path/to/application/relative/path", while resolving "path:/absolute/path" or "/absolute/path" will yield "/absolute/path". Resolving "http://example.com/path" will yield "http://example.com/path".- Parameters:
uri
- The URI to be resolved.- Returns:
- The URI resolved against the application base path.
- Throws:
java.lang.NullPointerException
- if the given URI isnull
.- See Also:
getBasePath()
,resolvePath(URIPath)
-
relativizePath
com.globalmentor.net.URIPath relativizePath(com.globalmentor.net.URIPath path)
Changes an absolute path to an application-relative path. For an application base path "/path/to/application/", relativizing "/path/to/application/relative/path" will yield "relative/path"- Parameters:
path
- The path to be relativized.- Returns:
- The path relativized to the application base path.
- Throws:
java.lang.NullPointerException
- if the given path isnull
.java.lang.IllegalArgumentException
- if the provided path specifies a URI scheme (i.e. the URI is absolute) and/or authority (in which caseresolveURI(URI)
should be used instead).- See Also:
getBasePath()
,relativizeURI(URI)
-
relativizeURI
com.globalmentor.net.URIPath relativizeURI(java.net.URI uri)
Changes a URI to an application-relative path. For an application base path "/path/to/application/", relativizing "http://www.example.com/path/to/application/relative/path" will yield "relative/path"- Parameters:
uri
- The URI to be relativized.- Returns:
- The URI path relativized to the application base path.
- Throws:
java.lang.NullPointerException
- if the given URI isnull
.- See Also:
getBasePath()
,relativizePath(URIPath)
-
getLocaleResourcePath
java.lang.String getLocaleResourcePath(java.lang.String resourceBasePath, java.util.Locale locale)
Determines the locale-sensitive path of the given resource path. Based upon the provided locale, candidate resource paths are checked in the following order:- resourceBasePath + "_" + language + "_" + country + "_" + variant
- resourceBasePath + "_" + language + "_" + country
- resourceBasePath + "_" + language
- Parameters:
resourceBasePath
- An application-relative base path to a resource in the application resource storage area.locale
- The locale to use in generating candidate resource names.- Returns:
- The locale-sensitive path to an existing resource based upon the given locale, or
null
if no resource exists at the given resource base path or any of its locale candidates. - Throws:
java.lang.NullPointerException
- if the given resource base path and/or locale isnull
.java.lang.IllegalArgumentException
- if the given resource path is absolute.java.lang.IllegalArgumentException
- if the given path is not a valid path.- See Also:
hasResource(String)
-
hasResource
boolean hasResource(java.lang.String resourcePath)
Determines if the application has a resource available stored at the given resource path. The provided path is first normalized.- Parameters:
resourcePath
- An application-relative path to a resource in the application resource storage area.- Returns:
true
if a resource exists at the given resource path.- Throws:
java.lang.IllegalArgumentException
- if the given resource path is absolute.java.lang.IllegalArgumentException
- if the given path is not a valid path.
-
getResourceInputStream
java.io.InputStream getResourceInputStream(java.lang.String resourcePath)
Retrieves an input stream to the resource at the given path. The provided path is first normalized.- Parameters:
resourcePath
- An application-relative path to a resource in the application resource storage area.- Returns:
- An input stream to the resource at the given resource path, or
null
if no resource exists at the given resource path. - Throws:
java.lang.IllegalArgumentException
- if the given resource path is absolute.java.lang.IllegalArgumentException
- if the given path is not a valid path.
-
getInputStream
java.io.InputStream getInputStream(java.net.URI uri) throws java.io.IOException
Retrieves an input stream to the entity at the given URI. The URI is first resolved to the application base path. If the URI represents one of this application's public resources, this implementation will return an input stream directly from that resource if possible rather than issuing a separate server request. This method supports read access to temporary public resources.- Parameters:
uri
- A URI to the entity; either absolute or relative to the application.- Returns:
- An input stream to the entity at the given resource URI, or
null
if no entity exists at the given resource path. - Throws:
java.lang.NullPointerException
- if the given URI isnull
.java.lang.IllegalStateException
- if a Guise public temporary resource was requested that requires a particular Guise session, and the request was not made from the required session.java.io.IOException
- if there was an error connecting to the entity at the given URI.- See Also:
resolveURI(URI)
-
getInputStream
java.io.InputStream getInputStream(com.globalmentor.net.URIPath path) throws java.io.IOException
Retrieves an input stream to the entity at the given path. If the URI represents one of this application's public resources, this implementation will return an input stream directly from that resource if possible rather than issuing a separate server request. This method supports read access to temporary public resources.- Parameters:
path
- A path that is either relative to the application context path or is absolute.- Returns:
- An input stream to the entity at the given resource path, or
null
if no entity exists at the given resource path. - Throws:
java.lang.NullPointerException
- if the given path isnull
.java.lang.IllegalArgumentException
- if the provided path specifies a URI scheme (i.e. the URI is absolute) and/or authority (in which casegetInputStream(URI)
should be used instead).java.lang.IllegalStateException
- if a Guise public temporary resource was requested that requires a particular Guise session, and the request was not made from the required session.java.io.IOException
- if there was an error connecting to the entity at the given path.- See Also:
getInputStream(URI)
-
getOutputStream
java.io.OutputStream getOutputStream(java.net.URI uri) throws java.io.IOException
Retrieves an output stream to the entity at the given URI. The URI is first resolved to the application base path. This method supports write access to temporary public resources. Write access to resources other than Guise public temporary files is currently unsupported.- Parameters:
uri
- A URI to the entity; either absolute or relative to the application.- Returns:
- An output stream to the entity at the given resource URI.
- Throws:
java.lang.NullPointerException
- if the given URI isnull
.java.lang.IllegalStateException
- if a Guise public temporary resource was requested that requires a particular Guise session, and the request was not made from the required session.java.io.FileNotFoundException
- if a URI to a temporary file was passed before the file was created usingcreateTempAsset(String, String, GuiseSession)
.java.io.IOException
- if there was an error connecting to the entity at the given URI.- See Also:
resolveURI(URI)
,createTempAsset(String, String, GuiseSession)
-
getOutputStream
java.io.OutputStream getOutputStream(com.globalmentor.net.URIPath path) throws java.io.IOException
Retrieves an output stream to the entity at the given path. This method supports write access to temporary public resources. Write access to resources other than Guise public temporary files is currently unsupported.- Parameters:
path
- A path that is either relative to the application context path or is absolute.- Returns:
- An output stream to the entity at the given resource path.
- Throws:
java.lang.NullPointerException
- if the given path isnull
.java.lang.IllegalArgumentException
- if the provided path specifies a URI scheme (i.e. the URI is absolute) and/or authority (in which casegetOutputStream(URI)
should be used instead).java.lang.IllegalStateException
- if a Guise public temporary resource was requested that requires a particular Guise session, and the request was not made from the required session.java.io.FileNotFoundException
- if a path to a temporary file was passed before the file was created usingcreateTempAsset(String, String, GuiseSession)
.java.io.IOException
- if there was an error connecting to the entity at the given URI.- See Also:
getOutputStream(URI)
,createTempAsset(String, String, GuiseSession)
-
createTempAsset
com.globalmentor.net.URIPath createTempAsset(java.lang.String baseName, java.lang.String extension, GuiseSession restrictionSession) throws java.io.IOException
Creates a temporary asset available at an application navigation path. The file will be created in the application's temporary file directory. If the asset is restricted to the current Guise session, the asset will be deleted when the current Guise session ends.- Parameters:
baseName
- The base filename to be used in generating the filename.extension
- The extension to use for the temporary file.restrictionSession
- The Guise session to which access access to the temporary file should be restricted, ornull
if there should be no access restriction.- Returns:
- An application navigation path that can be used to access the asset.
- Throws:
java.lang.NullPointerException
- if the given base name and/or extension isnull
.java.lang.IllegalArgumentException
- if the base name is the empty string.java.lang.IllegalStateException
- if the given restriction session is not registered with this application.java.io.IOException
- if there is a problem creating the temporary asset.- See Also:
getTempDirectory()
,hasAsset(URIPath)
-
hasAsset
boolean hasAsset(com.globalmentor.net.URIPath path) throws java.io.IOException
Determines whether this application has an asset at the given path. The path is first normalized. This method supports Guise assets and temporary application assets.- Parameters:
path
- The application-relative path of the asset.- Returns:
true
if an asset exists at the given path.- Throws:
java.io.IOException
- if there was an error accessing the asset.- See Also:
createTempAsset(String, String, GuiseSession)
,Guise.hasAsset(String)
-
getAssetURL
java.net.URL getAssetURL(com.globalmentor.net.URIPath path, GuiseSession guiseSession) throws java.io.IOException
Returns a URL to the asset at the given path. The path is first normalized. This method supports Guise assets and temporary application assets. The returned URL represents internal access to the asset and should normally not be presented to users.- Parameters:
path
- The application-relative path of the asset.guiseSession
- The Guise session requesting the asset, ornull
if there is no session associated with the request.- Returns:
- A URL to the asset, or
null
if there is no such asset. - Throws:
java.lang.IllegalStateException
- if an asset was requested that requires a particular Guise session different from the given Guise session.java.io.IOException
- if there was an error accessing the asset.- See Also:
createTempAsset(String, String, GuiseSession)
,Guise.getAssetURL(String)
-
loadResourceBundle
java.util.ResourceBundle loadResourceBundle(Theme theme, java.util.Locale locale) throws java.io.IOException
Retrieves a resource bundle for the given theme in the given locale. The resource bundle retrieved will allow hierarchical resolution in the following priority:- Any resource defined by the application.
- Any resource defined by the theme.
- Any resource defined by a parent theme, including the default theme.
- Any resource defined by default by Guise.
- Parameters:
theme
- The current theme in effect.locale
- The locale for which resources should be retrieved.- Returns:
- A resolving resource bundle based upon the locale.
- Throws:
java.io.IOException
- if there was an error loading a resource bundle.- See Also:
getResourceBundleBaseName()
-
loadTheme
Theme loadTheme(java.net.URI themeURI) throws java.io.IOException
Loads a theme from the given URI. All relative URIs are considered relative to the application. If the theme specifies no parent theme, the default parent theme will be assigned unless the theme is the default theme.- Parameters:
themeURI
- The URI of the theme to load.- Returns:
- A loaded theme with resolving parents loaded as well.
- Throws:
java.lang.NullPointerException
- if the given theme URI isnull
.java.io.IOException
- if there is an error loading the theme or one of its parents.
-
loadProperties
java.util.Properties loadProperties(java.lang.String propertiesPath) throws java.io.IOException
Loads properties from a file in the home directory. The properties can be stored in XML or in the traditional properties format.- Parameters:
propertiesPath
- The path to the properties file, relative to the application home directory.- Returns:
- The properties loaded from the file at the given path.
- Throws:
java.lang.NullPointerException
- if the given properties path isnull
.java.lang.IllegalArgumentException
- if the type of properties file is not recognized.java.io.IOException
- if there is an error loading the properties.- See Also:
getHomeDirectory()
-
getFacebookAdminIDs
java.util.Set<java.lang.String> getFacebookAdminIDs()
Indicates the Facebook administrators, if any, for this application.- Returns:
- The IDs of the Facebook administrators, if any, for this application.
-
getFacebookAdminIDs
java.util.Set<java.lang.String> getFacebookAdminIDs(com.globalmentor.net.URIPath navigationPath)
Indicates the Facebook administrators, if any, for the given navigation path.- Parameters:
navigationPath
- The navigation path for which a Facebook application ID should be returned.- Returns:
- The IDs of the Facebook administrators, if any, for the navigation path.
-
getFacebookAppID
java.lang.String getFacebookAppID()
Indicates the Facebook application, if any.- Returns:
- The ID of the Facebook application, or
null
if there is no Facebook application. - Throws:
java.lang.NullPointerException
- if the given navigation path isnull
.
-
getFacebookAppID
java.lang.String getFacebookAppID(com.globalmentor.net.URIPath navigationPath)
Indicates the Facebook application, if any, for the given navigation path.- Parameters:
navigationPath
- The navigation path for which a Facebook application ID should be returned.- Returns:
- The ID of the Facebook application for the given navigation path, or
null
if there is no Facebook application. - Throws:
java.lang.NullPointerException
- if the given navigation path isnull
.
-
-