| com.ecyrd.jspwiki.ui.Command
All known Subclasses: com.ecyrd.jspwiki.ui.AbstractCommand, com.ecyrd.jspwiki.WikiContext,
Command | public interface Command (Code) | |
Represents a logical "unit of work" that includes a request context, JSP,
URLPattern, content template and (optionally) a target and required security
permission. Examples of Commands include "view a page," "create a group," and
"edit user preferences."
Commands come in two flavors: "static" and "targeted."
- Static commands are exactly what they sound like:
static. They are
final , threadsafe, and immutable. They have
no intrinsic idea of the context they are acting in. For example, the static
command
PageCommand.VIEW embodies the idea of viewing a page —
but exactly which page is left undefined. Static commands exist so
that they can be freely shared and passed around without incurring the
penalties of object creation. Static commands are a lot like naked request
contexts ("edit", "view", etc.) except that they include additional,
essential properites such as the associated URL pattern and content JSP.
- Targeted commands "decorate" static commands by
scoping a static Command at a specific target such as a WikiPage or
GroupPrincipal. Targeted commands are created by calling an existing
Command's
Command.targetedCommand(Object) and supplying the target object.
Implementing classes generally require a specific target type. For example,
the
PageCommand class requires that the target object be of type
com.ecyrd.jspwiki.WikiPage .
Concrete implementations of Command include:
- PageCommand: commands for editing, renaming, and
viewing pages
- GroupCommand: commands for viewing, editing and
deleting wiki groups
- WikiCommand: commands for wiki-wide operations such as
creating groups, editing preferences and profiles, and logging in/out
- RedirectCommand: commands for redirections to off-site
special pages
For a given targeted Command, its
Command.getTarget() method will return a
non-null value. In addition, its
Command.requiredPermission() method will generally also return a non-null
value. It is each implementation's responsibility to construct and store the
correct Permission for a given Command and Target. For example, when
PageCommand.VIEW is targeted at the WikiPage Main , the
Command's associated permission is
PagePermission "theWiki:Main", "view".
Static Commands, and targeted Commands that do not require specific
permissions to execute, return a null result for
Command.requiredPermission() .
author: Andrew Jaquith since: 2.4.22 |
getContentTemplate | public String getContentTemplate()(Code) | | Returns the content template associated with a Command, such as
PreferencesContent.jsp . For Commands that are not
page-related, this method will always return null .
Calling methods should always check to see if the result
of this method is null .
the content template |
getJSP | public String getJSP()(Code) | | Returns the JSP associated with the Command. The JSP is
a "local" JSP within the JSPWiki webapp; it is not
a general HTTP URL. If it exists, the JSP will be expressed
relative to the webapp root, without a leading slash.
This method is guaranteed to return a non-null
result, although in some cases the result may be an empty string.
the JSP or url associated with the wiki command |
getName | public String getName()(Code) | | Returns the human-friendly name for this command.
the name |
getRequestContext | public String getRequestContext()(Code) | | Returns the request context associated with this Command. This method is
guaranteed to return a non-null String.
the request context |
getTarget | public Object getTarget()(Code) | | Returns the target associated with a Command, if it was created with one.
Commands created with
Command.targetedCommand(Object) will
always return a non-null object. Calling
methods should always check to see if the result of this method
is null .
the wiki page |
getURLPattern | public String getURLPattern()(Code) | | Returns the URL pattern associated with this Command. This method is
guaranteed to return a non-null String.
the URL pattern |
requiredPermission | public Permission requiredPermission()(Code) | | Returns the Permission required to successfully execute this Command. If
no Permission is requred, this method returns null . For
example, the static command
PageCommand.VIEW doesn't require a
permission because it isn't referring to a particular WikiPage. However,
if this command targets a WikiPage called Main (via
PageCommand.targetedCommand(Object) , the resulting Command
would require the permission
PagePermission "yourWiki:Main", "view" .
the required permission, or null if not required |
targetedCommand | public Command targetedCommand(Object target)(Code) | | Creates and returns a targeted Command by combining a target, such as a
WikiPage or GroupPrincipal into the existing Command. Subclasses should
check to make sure the supplied target object is of the
correct type. This method is guaranteed to return a non-null
Command (unless the target is an incorrect type).
Parameters: target - the object to combine, such as a GroupPrincipal or WikiPage the new, targeted Command throws: IllegalArgumentException - if the target is not of the correct type |
|
|