|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.wiki.WikiContext
public class WikiContext
Provides state information throughout the processing of a page. A WikiContext is born when the JSP pages that are the main entry points, are invoked. The JSPWiki engine creates the new WikiContext, which basically holds information about the page, the handling engine, and in which context (view, edit, etc) the call was done.
A WikiContext also provides request-specific variables, which can be used to communicate between plugins on the same page, or between different instances of the same plugin. A WikiContext variable is valid until the processing of the page has ended. For an example, please see the Counter plugin.
When a WikiContext is created, it automatically associates a
WikiSession
object with the user's HttpSession. The
WikiSession contains information about the user's authentication
status, and is consulted by getCurrentUser()
.
object
Do not cache the page object that you get from the WikiContext; always use getPage()!
Counter
Field Summary | |
---|---|
static String |
ADMIN
User is doing administrative things. |
static String |
ATTACH
User is downloading an attachment. |
static String |
COMMENT
User is commenting something. |
static String |
CONFLICT
User has an internal conflict, and does quite not know what to do. |
static String |
CREATE_GROUP
User wishes to create a new group |
static String |
DELETE
User is deleting a page or an attachment. |
static String |
DELETE_GROUP
User is deleting an existing group. |
static String |
DIFF
User is viewing a DIFF between the two versions of the page. |
static String |
EDIT
The EDIT context - the user is editing the page. |
static String |
EDIT_GROUP
User is editing an existing group. |
static String |
ERROR
An error has been encountered and the user needs to be informed. |
static String |
FIND
User is searching for content. |
static String |
INFO
User is viewing page history. |
static String |
INSTALL
User is administering JSPWiki (Install, SecurityConfig). |
static String |
LOGIN
User is preparing for a login/authentication. |
static String |
LOGOUT
User is preparing to log out. |
protected javax.servlet.http.HttpServletRequest |
m_request
Stores the HttpServletRequest. |
static String |
MESSAGE
JSPWiki wants to display a message. |
static String |
NONE
This is not a JSPWiki context, use it to access static files. |
static String |
OTHER
Same as NONE; this is just a clarification. |
static String |
PREFS
User is editing preferences |
static String |
PREVIEW
User is previewing the changes he just made. |
static String |
RENAME
User is renaming a page. |
static String |
RSS
RSS feed is being generated. |
static String |
UPLOAD
User is uploading something. |
static String |
VIEW
The VIEW context - the user just wants to view the page contents. |
static String |
VIEW_GROUP
User is viewing an existing group |
static String |
WORKFLOW
User wants to view or administer workflows. |
Constructor Summary | |
---|---|
WikiContext(WikiEngine engine,
javax.servlet.http.HttpServletRequest request,
Command command)
Creates a new WikiContext for the given WikiEngine, Command and HttpServletRequest. |
|
WikiContext(WikiEngine engine,
javax.servlet.http.HttpServletRequest request,
WikiPage page)
Creates a new WikiContext for the given WikiEngine, WikiPage and HttpServletRequest. |
|
WikiContext(WikiEngine engine,
WikiPage page)
Create a new WikiContext for the given WikiPage. |
Method Summary | |
---|---|
Object |
clone()
Returns a shallow clone of the WikiContext. |
WikiContext |
deepClone()
Creates a deep clone of the WikiContext. |
protected static Command |
findCommand(WikiEngine engine,
javax.servlet.http.HttpServletRequest request,
WikiPage page)
Looks up and returns a PageCommand based on a supplied WikiPage and HTTP request. |
static WikiContext |
findContext(javax.servlet.jsp.PageContext pageContext)
This method can be used to find the WikiContext programmatically from a JSP PageContext. |
Command |
getCommand()
Returns the Command associated with this WikiContext. |
String |
getContentTemplate()
Returns the content template associated with a Command, such as PreferencesContent.jsp . |
Principal |
getCurrentUser()
Convenience method that gets the current user. |
WikiEngine |
getEngine()
Returns the handling engine. |
String |
getHttpParameter(String paramName)
This method will safely return any HTTP parameters that might have been defined. |
javax.servlet.http.HttpServletRequest |
getHttpRequest()
If the request did originate from a HTTP request, then the HTTP request can be fetched here. |
String |
getJSP()
Returns the JSP associated with the Command. |
String |
getName()
Returns the target of this wiki context: a page, group name or JSP. |
WikiPage |
getPage()
Returns the page that is being handled. |
WikiPage |
getRealPage()
Gets a reference to the real page whose content is currently being rendered. |
String |
getRedirectURL()
Figure out to which page we are really going to. |
String |
getRequestContext()
Returns the request context. |
Object |
getTarget()
Returns the target associated with a Command, if it was created with one. |
String |
getTemplate()
Gets the template that is to be used throughout this request. |
String |
getURL(String context,
String page)
Creates an URL for the given request context. |
String |
getURL(String context,
String page,
String params)
Returns an URL from a page. |
String |
getURLPattern()
Returns the URL pattern associated with this Command. |
Object |
getVariable(String key)
Gets a previously set variable. |
String |
getViewURL(String page)
A shortcut to generate a VIEW url. |
WikiSession |
getWikiSession()
Returns the WikiSession associated with the context. |
boolean |
hasAdminPermissions()
Returns true, if the current user has administrative permissions (i.e. the omnipotent AllPermission). |
Permission |
requiredPermission()
Returns the permission required to successfully execute this context. |
protected void |
setDefaultTemplate(javax.servlet.http.HttpServletRequest request)
Figures out which template a new WikiContext should be using. |
void |
setPage(WikiPage page)
Sets the page that is being handled. |
WikiPage |
setRealPage(WikiPage page)
Sets a reference to the real page whose content is currently being rendered. |
void |
setRequestContext(String arg)
Sets the request context. |
void |
setTemplate(String dir)
Sets the template to be used for this request. |
void |
setVariable(String key,
Object data)
Sets a variable. |
Command |
targetedCommand(Object target)
Associates a target with the current Command and returns the new targeted Command. |
protected void |
updateCommand(String requestContext)
Protected method that updates the internally cached Command. |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected javax.servlet.http.HttpServletRequest m_request
public static final String INSTALL
public static final String VIEW
public static final String WORKFLOW
public static final String EDIT
public static final String LOGIN
public static final String LOGOUT
public static final String MESSAGE
public static final String DIFF
public static final String INFO
public static final String PREVIEW
public static final String CONFLICT
public static final String ERROR
public static final String UPLOAD
public static final String COMMENT
public static final String FIND
public static final String CREATE_GROUP
public static final String DELETE_GROUP
public static final String EDIT_GROUP
public static final String VIEW_GROUP
public static final String PREFS
public static final String RENAME
public static final String DELETE
public static final String ATTACH
public static final String RSS
public static final String NONE
public static final String OTHER
public static final String ADMIN
Constructor Detail |
---|
public WikiContext(WikiEngine engine, WikiPage page)
WikiContext(WikiEngine, HttpServletRequest, WikiPage)
.
engine
- The WikiEngine that is handling the request.page
- The WikiPage. If you want to create a
WikiContext for an older version of a page, you must use this
constructor.public WikiContext(WikiEngine engine, javax.servlet.http.HttpServletRequest request, Command command) throws IllegalArgumentException
Creates a new WikiContext for the given WikiEngine, Command and HttpServletRequest.
This constructor will also look up the HttpSession associated with the request, and determine if a WikiSession object is present. If not, a new one is created.
engine
- The WikiEngine that is handling the requestrequest
- The HttpServletRequest that should be associated with this
context. This parameter may be null
.command
- the command
IllegalArgumentException
- if engine
or
command
are null
public WikiContext(WikiEngine engine, javax.servlet.http.HttpServletRequest request, WikiPage page)
findCommand(WikiEngine, HttpServletRequest, WikiPage)
and
delegates to
WikiContext(WikiEngine, HttpServletRequest, Command)
.
engine
- The WikiEngine that is handling the requestrequest
- The HttpServletRequest that should be associated with this
context. This parameter may be null
.page
- The WikiPage. If you want to create a WikiContext for an
older version of a page, you must supply this parameterMethod Detail |
---|
public String getContentTemplate()
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
.
getContentTemplate
in interface Command
Command.getContentTemplate()
public String getJSP()
null
result, although in some cases the result may be an empty string.
getJSP
in interface Command
Command.getJSP()
public WikiPage setRealPage(WikiPage page)
Sometimes you may want to render the page using some other page's context. In those cases, it is highly recommended that you set the setRealPage() to point at the real page you are rendering. Please see InsertPageTag for an example.
Also, if your plugin e.g. does some variable setting, be aware that if it is embedded in the LeftMenu or some other page added with InsertPageTag, you should consider what you want to do - do you wish to really reference the "master" page or the included page.
page
- The real page which is being rendered.
InsertPageTag
public WikiPage getRealPage()
For example, in the default template, there is a page called "LeftMenu". Whenever you access a page, e.g. "Main", the master page will be Main, and that's what the getPage() will return - regardless of whether your plugin resides on the LeftMenu or on the Main page. However, getRealPage() will return "LeftMenu".
InsertPageTag
,
JSPWikiMarkupParser
public String getRedirectURL()
CommandResolver.getSpecialPageReference(String)
.
public WikiEngine getEngine()
public WikiPage getPage()
public void setPage(WikiPage page)
page
- The wikipagepublic String getRequestContext()
getRequestContext
in interface Command
public void setRequestContext(String arg)
arg
- The request context (one of the predefined contexts.)public Object getTarget()
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
.
getTarget
in interface Command
Command.getTarget()
public String getURLPattern()
null
String.
getURLPattern
in interface Command
Command.getURLPattern()
public Object getVariable(String key)
key
- The variable name.
public void setVariable(String key, Object data)
key
- The variable name.data
- The variable value.public String getHttpParameter(String paramName)
paramName
- Parameter name to look for.
public javax.servlet.http.HttpServletRequest getHttpRequest()
public void setTemplate(String dir)
dir
- The template namepublic String getName()
Command.getName()
method. Calling classes
can rely on the results of this method for looking up canonically-correct
page or group names. Because it does not automatically assume that the
wiki context is a PageCommand, calling this method is inherently safer
than calling getPage().getName()
.
getName
in interface Command
PageCommand.getName()
,
GroupCommand.getName()
public String getTemplate()
public Principal getCurrentUser()
public String getViewURL(String page)
page
- The page to which to link.
public String getURL(String context, String page)
context
- e.g. WikiContext.EDITpage
- The page to which to link
public String getURL(String context, String page, String params)
context
- The request context (e.g. WikiContext.UPLOAD)page
- The page to which to linkparams
- A list of parameters, separated with "&"
public Command getCommand()
public Object clone()
clone
in class Object
public WikiContext deepClone()
public WikiSession getWikiSession()
WikiSession.guestSession(WikiEngine)
.
public static WikiContext findContext(javax.servlet.jsp.PageContext pageContext)
WikiTagBase.ATTR_CONTEXT
.
pageContext
- the JSP page context
public Permission requiredPermission()
PropertyPermission
"os.name",
"read"
). This method is guaranteed to always return a valid,
non-null permission.
requiredPermission
in interface Command
public Command targetedCommand(Object target)
targetedCommand
in interface Command
target
- the object to combine, such as a GroupPrincipal or WikiPage
{@inheritDoc}
public boolean hasAdminPermissions()
protected void setDefaultTemplate(javax.servlet.http.HttpServletRequest request)
request
- the HTTP requestprotected static Command findCommand(WikiEngine engine, javax.servlet.http.HttpServletRequest request, WikiPage page)
PageCommand.VIEW
. If the Command is a
PageCommand (and it should be, in most cases), a targeted Command is
created using the (non-null
) WikiPage as target.
engine
- the wiki enginerequest
- the HTTP requestpage
- the wiki page
protected void updateCommand(String requestContext)
requestContext
- the desired request context
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |