com.guiseframework
Class AbstractDestination

java.lang.Object
  extended by com.globalmentor.beans.BoundPropertyObject
      extended by com.guiseframework.AbstractDestination
All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable, com.globalmentor.beans.PropertyConstrainable, Destination
Direct Known Subclasses:
AbstractReferenceDestination, ComponentDestination

public abstract class AbstractDestination
extends com.globalmentor.beans.BoundPropertyObject
implements Destination

Abstract implementation of a navigation point, its properties, and its restrictions. Destinations of identical types with identical paths and path patterns are considered equal.

Author:
Garret Wilson

Field Summary
 
Fields inherited from class com.globalmentor.beans.BoundPropertyObject
NO_PROPERTY_CHANGE_LISTENERS, NO_VETOABLE_CHANGE_LISTENERS
 
Constructor Summary
AbstractDestination(java.util.regex.Pattern pathPattern)
          Path pattern constructor.
AbstractDestination(com.globalmentor.net.URIPath path)
          Path constructor.
 
Method Summary
 boolean equals(java.lang.Object object)
          Determines if this destination is equivalent to the given object.
 boolean exists(GuiseSession session, com.globalmentor.net.URIPath navigationPath, Bookmark bookmark, java.net.URI referrerURI)
          Determines if the given location does indeed exist for this destination.
 java.lang.Iterable<Category> getCategories()
          The read-only iterable of categories.
 com.globalmentor.net.URIPath getPath()
           
 com.globalmentor.net.URIPath getPath(GuiseSession session, com.globalmentor.net.URIPath path, Bookmark bookmark, java.net.URI referrerURI)
          Determines the path to use for the requested path.
 java.util.regex.Pattern getPathPattern()
           
 int hashCode()
           
 boolean isAuthorized(GuiseSession session, com.globalmentor.net.URIPath navigationPath, Bookmark bookmark, java.net.URI referrerURI)
          Determines if access to the given path is authorized for access by the current user, if any.
 void setCategories(java.util.List<Category> categories)
          Sets the categories.
 
Methods inherited from class com.globalmentor.beans.BoundPropertyObject
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, createPostponedPropertyChangeEvent, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, getForwardPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyChangeSupport, getRepeatPropertyChangeListener, getRepeatVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, getVetoableChangeSupport, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.globalmentor.beans.PropertyBindable
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, hasPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
 

Constructor Detail

AbstractDestination

public AbstractDestination(com.globalmentor.net.URIPath path)
Path constructor.

Parameters:
path - The application context-relative path within the Guise container context, which does not begin with '/'.
Throws:
java.lang.NullPointerException - if the path is null.
java.lang.IllegalArgumentException - if the provided path is absolute.

AbstractDestination

public AbstractDestination(java.util.regex.Pattern pathPattern)
Path pattern constructor.

Parameters:
pathPattern - The pattern to match an application context-relative path within the Guise container context, which does not begin with '/'.
Throws:
java.lang.NullPointerException - if the path pattern is null.
Method Detail

getCategories

public java.lang.Iterable<Category> getCategories()
The read-only iterable of categories.

Specified by:
getCategories in interface Destination

setCategories

public void setCategories(java.util.List<Category> categories)
Sets the categories.

Specified by:
setCategories in interface Destination
Parameters:
categories - The list of new categories.

getPath

public com.globalmentor.net.URIPath getPath()
Specified by:
getPath in interface Destination
Returns:
The application context-relative path within the Guise container context, which does not begin with '/', or null if there is no path specified for this destination.

getPathPattern

public java.util.regex.Pattern getPathPattern()
Specified by:
getPathPattern in interface Destination
Returns:
The pattern to match an application context-relative path within the Guise container context, which does not begin with '/', or null if there is no path pattern specified for this destination.

getPath

public com.globalmentor.net.URIPath getPath(GuiseSession session,
                                            com.globalmentor.net.URIPath path,
                                            Bookmark bookmark,
                                            java.net.URI referrerURI)
                                     throws com.globalmentor.net.ResourceIOException
Determines the path to use for the requested path. If there is a preferred path, it is returned; otherwise, the path is returned unmodified. If the given path does not exist but the path would exist if made into a a collection path by adding a an ending slash, that new path is returned.

Specified by:
getPath in interface Destination
Parameters:
session - The current Guise session.
path - The application-relative path.
bookmark - The bookmark for this path, or null if there is no bookmark.
referrerURI - The URI of the referring destination or other entity with no query or fragment, or null if no referring URI is known.
Returns:
The preferred path.
Throws:
java.lang.NullPointerException - if the given session and/or path is null.
com.globalmentor.net.ResourceIOException - if there is an error accessing the resource.

exists

public boolean exists(GuiseSession session,
                      com.globalmentor.net.URIPath navigationPath,
                      Bookmark bookmark,
                      java.net.URI referrerURI)
               throws com.globalmentor.net.ResourceIOException
Determines if the given location does indeed exist for this destination. This version assumes that all paths exist at this destination and returns true.

Specified by:
exists in interface Destination
Parameters:
session - The current Guise session.
navigationPath - The navigation path relative to the application context path.
bookmark - The bookmark for which navigation should occur at this navigation path, or null if there is no bookmark involved in navigation.
referrerURI - The URI of the referring navigation panel or other entity with no query or fragment, or null if no referring URI is known.
Returns:
Whether the requested path exists.
Throws:
java.lang.NullPointerException - if the given navigation path is null.
com.globalmentor.net.ResourceIOException - if there is an error accessing the resource.

isAuthorized

public boolean isAuthorized(GuiseSession session,
                            com.globalmentor.net.URIPath navigationPath,
                            Bookmark bookmark,
                            java.net.URI referrerURI)
                     throws com.globalmentor.net.ResourceIOException
Determines if access to the given path is authorized for access by the current user, if any.

The result of this method for resources that do not exist is undefined; it is assumed that this method will not be called unless exists(GuiseSession, URIPath, Bookmark, URI) returns true for that resource, although this method must not produce an error if the resource does not exist.

This method allows the underlying platform to handle unauthorized resources. If this implementation wishes to handle unauthorized resources, this method should return true and provide a resource that indicates the true resource is unauthorized or at the appropriate time redirect to an unauthorized indication page.

This implementation authorizes all resources.

Specified by:
isAuthorized in interface Destination
Parameters:
session - The current Guise session.
navigationPath - The navigation path relative to the application context path.
bookmark - The bookmark for which navigation should occur at this navigation path, or null if there is no bookmark involved in navigation.
referrerURI - The URI of the referring navigation panel or other entity with no query or fragment, or null if no referring URI is known.
Returns:
Whether the requested path exists.
Throws:
java.lang.NullPointerException - if the given navigation path is null.
com.globalmentor.net.ResourceIOException - if there is an error accessing the resource.

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object
Returns:
A hash code for this object.

equals

public boolean equals(java.lang.Object object)
Determines if this destination is equivalent to the given object. This implementation considers destinations of identical types with identical paths and path patterns to be equivalent.

Overrides:
equals in class java.lang.Object
Parameters:
object - The object to compare to this object.
Returns:
true if the given object is an equivalent destination.


Copyright © 2005-2010 GlobalMentor, Inc. All Rights Reserved.