com.opencms.file
Class CmsRequestContext

java.lang.Object
  |
  +--com.opencms.file.CmsRequestContext
All Implemented Interfaces:
I_CmsConstants

public class CmsRequestContext
extends Object
implements I_CmsConstants

This class provides access to the CmsRequestContext.
In the CmsRequestContext class are all methods bundled, which can inform about the current request properties, like the url or uri of the request.

Version:
$Revision: 1.67 $ $Date: 2003/03/07 16:15:49 $
Author:
Andreas Schouten, Michael Emmerich, Anders Fugmann, Alexander Lucas

Field Summary
 
Fields inherited from interface com.opencms.core.I_CmsConstants
C_ACCESS_DEFAULT_FLAGS, C_ACCESS_GROUP, C_ACCESS_GROUP_READ, C_ACCESS_GROUP_VISIBLE, C_ACCESS_GROUP_WRITE, C_ACCESS_INTERNAL_READ, C_ACCESS_OWNER, C_ACCESS_OWNER_READ, C_ACCESS_OWNER_VISIBLE, C_ACCESS_OWNER_WRITE, C_ACCESS_PUBLIC, C_ACCESS_PUBLIC_READ, C_ACCESS_PUBLIC_VISIBLE, C_ACCESS_PUBLIC_WRITE, C_ACCESS_READ, C_ACCESS_VISIBLE, C_ACCESS_WRITE, C_ADDITIONAL_INFO_EXPLORERSETTINGS, C_ADDITIONAL_INFO_PREFERENCES, C_ADDITIONAL_INFO_STARTSETTINGS, C_ADDITIONAL_INFO_TASKSETTINGS, C_ADDITIONAL_INFO_TOWN, C_ADDITIONAL_INFO_ZIPCODE, C_AT_LEAST_ONCE, C_CLUSTERURL, C_CONFIGURATION_CACHE, C_CONFIGURATION_CLASS, C_CONFIGURATION_REGISTRY, C_CONFIGURATION_RESOURCEBROKER, C_COPYRIGHT, C_DEFAULT_SITE, C_DELETE_HISTORY, C_ENABLE_HISTORY, C_ERRPREFIX, C_ERRSPERATOR, C_EXPORT_TAG_ACCESS, C_EXPORT_TAG_ADDRESS, C_EXPORT_TAG_CREATOR, C_EXPORT_TAG_DATE, C_EXPORT_TAG_DEFAULTGROUP, C_EXPORT_TAG_DESCRIPTION, C_EXPORT_TAG_DESTINATION, C_EXPORT_TAG_EMAIL, C_EXPORT_TAG_EXPORT, C_EXPORT_TAG_FILE, C_EXPORT_TAG_FIRSTNAME, C_EXPORT_TAG_FLAGS, C_EXPORT_TAG_GROUP, C_EXPORT_TAG_GROUPDATA, C_EXPORT_TAG_GROUPNAME, C_EXPORT_TAG_INFO, C_EXPORT_TAG_LASTMODIFIED, C_EXPORT_TAG_LASTNAME, C_EXPORT_TAG_LAUNCHER_START_CLASS, C_EXPORT_TAG_MODULEXPORT, C_EXPORT_TAG_NAME, C_EXPORT_TAG_OC_VERSION, C_EXPORT_TAG_PARENTGROUP, C_EXPORT_TAG_PASSWORD, C_EXPORT_TAG_PROJECT, C_EXPORT_TAG_PROPERTIES, C_EXPORT_TAG_PROPERTY, C_EXPORT_TAG_RECOVERYPASSWORD, C_EXPORT_TAG_SECTION, C_EXPORT_TAG_SOURCE, C_EXPORT_TAG_TYPE, C_EXPORT_TAG_USER, C_EXPORT_TAG_USERDATA, C_EXPORT_TAG_USERGROUPDATA, C_EXPORT_TAG_USERGROUPS, C_EXPORT_TAG_USERINFO, C_EXPORT_TAG_VALUE, C_EXPORT_TAG_VERSION, C_EXPORT_VERSION, C_EXPORT_XMLFILENAME, C_EXPORTONLYFILES, C_EXPORTONLYUSERS, C_EXPORTPOINT, C_EXPORTPOINT_PATH, C_EXPORTUSERSFILES, C_FCONTENT, C_FELEMENT, C_FILE, C_FILECONTENT, C_FILES_IMPORTED, C_FLAG_DISABLED, C_FLAG_ENABLED, C_FLAG_GROUP_PROJECTCOWORKER, C_FLAG_GROUP_PROJECTMANAGER, C_FLAG_GROUP_ROLE, C_FOLDER, C_FOLDER_SEPARATOR, C_GROUP, C_GROUP_ADMIN, C_GROUP_GUEST, C_GROUP_PROJECTLEADER, C_GROUP_USERS, C_LINKCHECKTABLE_DATE, C_MAX_LENGTH_RESOURCE_NAME, C_MODULE_PROPERTY_ADDITIONAL_RESOURCES, C_MODULE_PROPERTY_ADDITIONAL_RESOURCES_SEPARATOR, C_MODUS_AUTO, C_MODUS_EXPORT, C_MODUS_EXTERN, C_MODUS_OFFLINE, C_MODUS_ONLINE, C_MOUNTPOINT_FILESYSTEM, C_MOUNTPOINT_MYSQL, C_NEVER, C_NO_FILES_IMPORTED, C_ORDER_AGENTUSER, C_ORDER_ENDTIME, C_ORDER_ID, C_ORDER_INITIATORUSER, C_ORDER_NAME, C_ORDER_ORIGINALUSER, C_ORDER_PERCENTAGE, C_ORDER_PRIORITY, C_ORDER_ROLE, C_ORDER_STARTTIME, C_ORDER_STATE, C_ORDER_TASKTYPE, C_ORDER_TIMEOUT, C_ORDER_WAKEUPTIME, C_PASSWORD_MINIMUMSIZE, C_PROJECT_ONLINE, C_PROJECT_ONLINE_ID, C_PROJECT_STATE_ARCHIVE, C_PROJECT_STATE_INVISIBLE, C_PROJECT_STATE_LOCKED, C_PROJECT_STATE_UNLOCKED, C_PROJECT_TYPE_INVISIBLE, C_PROJECT_TYPE_NORMAL, C_PROJECT_TYPE_TEMPORARY, C_PROPERTY_ACTIV, C_PROPERTY_CHANNELID, C_PROPERTY_CONTENT_ENCODING, C_PROPERTY_DEFAULT_FILE, C_PROPERTY_DESCRIPTION, C_PROPERTY_EXPORT, C_PROPERTY_EXPORTNAME, C_PROPERTY_KEYWORDS, C_PROPERTY_NAVPOS, C_PROPERTY_NAVTEXT, C_PROPERTY_RELATIVEROOT, C_PROPERTY_TEMPLATETYPE, C_PROPERTY_TITLE, C_PROPERTY_VISIBLE, C_PUBLISH_METHOD_LINK, C_REGISTRY_DESTINATION, C_REGISTRY_HISTORY, C_REGISTRY_KNOWNLAUNCHERS, C_REGISTRY_LAUNCHER, C_REGISTRY_SOURCE, C_REQUEST_CONSOLE, C_REQUEST_HTTP, C_RESPONSE_CONSOLE, C_RESPONSE_HTTP, C_ROOT, C_ROOT_TEMPLATE_NAME, C_ROOTNAME_COS, C_ROOTNAME_VFS, C_SESSION_ADMIN_POS, C_SESSION_BROADCASTMESSAGE, C_SESSION_CONTENT_ENCODING, C_SESSION_CURRENTGROUP, C_SESSION_DATA, C_SESSION_IS_DIRTY, C_SESSION_MESSAGEPENDING, C_SESSION_MODULE_VECTOR, C_SESSION_PROJECT, C_SESSION_THREAD_ERROR, C_SESSION_USERNAME, C_SORT_ASC, C_SORT_DESC, C_START_ACCESSFLAGS, C_START_DEFAULTGROUP, C_START_LANGUAGE, C_START_LOCKDIALOG, C_START_PROJECT, C_START_VIEW, C_STATE_CHANGED, C_STATE_DELETED, C_STATE_NEW, C_STATE_UNCHANGED, C_STATICEXPORT_PATH, C_STATICEXPORT_START, C_SYNCHRONISATION_PATH, C_SYNCHRONISATION_PROJECT, C_SYNCHRONISATION_RESOURCE, C_SYNCHRONISATION_RESOURCETAG, C_SYSTEMPROPERTY_CRONTABLE, C_SYSTEMPROPERTY_EXPORTPATH, C_SYSTEMPROPERTY_EXTENSIONS, C_SYSTEMPROPERTY_LINKCHECKTABLE, C_SYSTEMPROPERTY_MIMETYPES, C_SYSTEMPROPERTY_MOUNTPOINT, C_SYSTEMPROPERTY_RESOURCE_TYPE, C_TABLE_CHANNELID, C_TASK_FILTER, C_TASK_MESSAGES, C_TASK_MESSAGES_ACCEPTED, C_TASK_MESSAGES_COMPLETED, C_TASK_MESSAGES_FORWARDED, C_TASK_MESSAGES_MEMBERS, C_TASK_ORDER_BY_DATE, C_TASK_ORDER_BY_NAME, C_TASK_PRIORITY_HIGH, C_TASK_PRIORITY_LOW, C_TASK_PRIORITY_NORMAL, C_TASK_STATE_ENDED, C_TASK_STATE_HALTED, C_TASK_STATE_NOTENDED, C_TASK_STATE_PREPARE, C_TASK_STATE_START, C_TASK_STATE_STARTED, C_TASK_VIEW_ALL, C_TASKLOG_SYSTEM, C_TASKLOG_USER, C_TASKORDER_NONE, C_TASKORDER_STARTDATE, C_TASKORDER_TIMEOUT, C_TASKS_ACTIVE, C_TASKS_ALL, C_TASKS_DONE, C_TASKS_NEW, C_TASKS_OPEN, C_TASKSORDER_TASKNAME, C_TEMP_PREFIX, C_TFACCESS, C_TFGROUP, C_TFILEOBJ, C_TFILES, C_TFNAME, C_TFPROPERTYINFO, C_TFPROPERTYNAME, C_TFPROPERTYTYPE, C_TFPROPERTYVALUE, C_TFTYPE, C_TFTYPENAME, C_TFUSER, C_TGDESC, C_TGFLAG, C_TGNAME, C_TGPARENTGROUP, C_TGROUPOBJ, C_TGROUPS, C_TGROUPUSERS, C_TGUSER, C_TUADDINFO, C_TUDESC, C_TUDGROUP, C_TUDISABLED, C_TUEMAIL, C_TUFIRSTNAME, C_TUFLAG, C_TUGROUP, C_TUINFOKEY, C_TUINFOVALUE, C_TULOGIN, C_TUNAME, C_TUPASSWD, C_TUSERGROUPS, C_TUSEROBJ, C_TUSERS, C_TYPE_BODY_NAME, C_TYPE_COMPATIBLEPLAIN_NAME, C_TYPE_FOLDER, C_TYPE_FOLDER_NAME, C_TYPE_IMAGE_NAME, C_TYPE_LAST_INDEX, C_TYPE_PAGE_NAME, C_TYPE_PLAIN_NAME, C_UNKNOWN_ID, C_UNKNOWN_INT, C_UNKNOWN_LAUNCHER, C_UNKNOWN_LAUNCHER_ID, C_UNKNOWN_LONG, C_URL_PREFIX_EXPORT, C_URL_PREFIX_HTTP, C_URL_PREFIX_HTTPS, C_URL_PREFIX_SERVERNAME, C_USER, C_USER_ADMIN, C_USER_GUEST, C_USER_TYPE_SYSTEMANDWEBUSER, C_USER_TYPE_SYSTEMUSER, C_USER_TYPE_WEBUSER, C_WEB_APP_REPLACE_KEY, C_WEEKS_HISTORY, C_WHATEVER, C_XML_BODY_ELEMENT
 
Constructor Summary
CmsRequestContext()
          The default constructor.
 
Method Summary
 void addDependency(String rootName)
          Adds a dependency.
 void addLink(String link)
          Adds a link for the static export.
 CmsFolder currentFolder()
          Returns the current folder object.
 CmsGroup currentGroup()
          Returns the current group of the current user.
 CmsProject currentProject()
          Returns the current project of the current user.
 CmsUser currentUser()
          Returns the current user object.
 Vector getAcceptedLanguages()
          Get a Vector of all accepted languages for this request.
 Object getAttribute(String attributeName)
          Gets the value of an attribute from the OpenCms request context attribute list.
 Vector getDependencies()
          Returns all dependencies the templatemechanism has registered.
 CmsResourceTranslator getDirectoryTranslator()
           
 CmsElementCache getElementCache()
          Get the CmsElementCache object.
 String getEncoding()
          Returns the current content encoding to be used in HTTP response
 CmsResourceTranslator getFileTranslator()
           
 String getFileUri()
          Gets the name of the requested file without any path-information.
 String getFolderUri()
          Gets the name of the parent folder of the requested file
 Vector getLinkVector()
          Returns all links that the template mechanism has registered.
 I_CmsRequest getRequest()
          Gets the current request, if availaible.
 I_CmsResponse getResponse()
          Gets the current response, if availaible.
 I_CmsSession getSession(boolean value)
          Gets the Session for this request.
 String getSiteName()
          Returns the site name, e.g.
 String getSiteRoot()
          Returns the site root, e.g.
 String getSiteRoot(String resourcename)
          Returns the name of the current site root, e.g.
 String getUri()
          Gets the uri for the requested resource.
 void initEncoding()
          Detects current content encoding to be used in HTTP response based on requested resource or session state.
 boolean isAdmin()
          Determines if the users is in the admin-group.
 boolean isElementCacheEnabled()
          Get the current mode for element cache.
 boolean isEventControlled()
          Check if this request context is event controlled.
 boolean isProjectManager()
          Determines if the users current group is the projectmanager-group.
 boolean isStreaming()
          Get the current mode for HTTP streaming.
 boolean isUpdateSessionEnabled()
          Check if this request context will update the session.
 void setAttribute(String key, Object value)
          Sets an attribute in the request context.
 void setContextTo(String name)
          Sets the name of the current site root of the virtual file system
 void setCurrentGroup(String groupname)
          Sets the current group of the current user.
 CmsProject setCurrentProject(int projectId)
          Sets the current project for the user.
 void setEncoding(String encoding)
          Sets the current content encoding to be used in HTTP response
 void setEncoding(String encoding, boolean storeInSession)
          Sets the current content encoding to be used in HTTP response and store it in session if it is available
 void setEventControlled(boolean value)
          Mark this request context as event controlled.
 void setStreaming(boolean b)
          Set the current mode for HTTP streaming.
 void setUpdateSessionEnabled(boolean value)
          Mark this request context to update the session or not.
 void setUri(String value)
          Set the value that is returned by getUri() to the provided String.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CmsRequestContext

public CmsRequestContext()
The default constructor.

Method Detail

addLink

public void addLink(String link)
Adds a link for the static export.


getLinkVector

public Vector getLinkVector()
Returns all links that the template mechanism has registered.


addDependency

public void addDependency(String rootName)
Adds a dependency.


getDependencies

public Vector getDependencies()
Returns all dependencies the templatemechanism has registered.


currentFolder

public CmsFolder currentFolder()
                        throws CmsException
Returns the current folder object.

Returns:
the current folder object.
Throws:
CmsException - if operation was not successful.

currentGroup

public CmsGroup currentGroup()
Returns the current group of the current user.

Returns:
the current group of the current user.

currentProject

public CmsProject currentProject()
Returns the current project of the current user.

Returns:
the current project of the current user.

currentUser

public CmsUser currentUser()
Returns the current user object.

Returns:
the current user object.

getFileUri

public String getFileUri()
Gets the name of the requested file without any path-information.

Returns:
the requested filename.

getFolderUri

public String getFolderUri()
Gets the name of the parent folder of the requested file

Returns:
the requested filename.

getRequest

public I_CmsRequest getRequest()
Gets the current request, if availaible.

Returns:
the current request, if availaible.

getResponse

public I_CmsResponse getResponse()
Gets the current response, if availaible.

Returns:
the current response, if availaible.

getSession

public I_CmsSession getSession(boolean value)
Gets the Session for this request.

This method should be used instead of the originalRequest.getSession() method.

Parameters:
value - indicates, if a session should be created when a session for the particular client does not already exist.
Returns:
the CmsSession, or null if no session already exists and value was set to false

getUri

public String getUri()
Gets the uri for the requested resource.

For a http request, the name of the resource is extracted as follows:
http://{servername}/{servletpath}/{path to the cms resource}
In the following example:
http://my.work.server/servlet/opencms/system/def/explorer
the requested resource is /system/def/explorer.

Returns:
the path to the requested resource.

setUri

public void setUri(String value)
Set the value that is returned by getUri() to the provided String.

This is required in a context where a cascade of included XMLTemplates are combined with JSP or other Templates that use the ResourceLoader interface. You need to fake the URI because the ElementCache always uses cms.getRequestContext().getUri() even if you called CmsXmlLauncher.generateOutput() with a differnt file name.

Parameters:
value - The value to set the Uri to, must be a complete OpenCms path name like /system/workplace/stlye.css
Since:
5.0 beta 1

isAdmin

public boolean isAdmin()
                throws CmsException
Determines if the users is in the admin-group.

Returns:
true if the users current group is the admin-group; false otherwise.
Throws:
CmsException - if operation was not successful.

isProjectManager

public boolean isProjectManager()
                         throws CmsException
Determines if the users current group is the projectmanager-group.

All projectmanagers can create new projects, or close their own projects.

Returns:
true if the users current group is the projectleader-group; false otherwise.
Throws:
CmsException - if operation was not successful.

setCurrentGroup

public void setCurrentGroup(String groupname)
                     throws CmsException
Sets the current group of the current user.

Parameters:
groupname - the name of the group to be set as current group.
Throws:
CmsException - if operation was not successful.

setCurrentProject

public CmsProject setCurrentProject(int projectId)
                             throws CmsException
Sets the current project for the user.

Parameters:
projectId - the id of the project to be set as current project.
Throws:
CmsException - if operation was not successful.

isStreaming

public boolean isStreaming()
Get the current mode for HTTP streaming.

Returns:
true if template classes are allowed to stream the results to the response output stream theirselves, false otherwise.

setStreaming

public void setStreaming(boolean b)
                  throws CmsException
Set the current mode for HTTP streaming.

Calling this method is only allowed, if the response output stream was not used before. Otherwise the streaming mode must not be changed.

Parameters:
b - true if template classes are allowed to stream the results to the response's output stream theirselves, false otherwise.
Throws:
CmsException - if the output stream was already used previously.

isElementCacheEnabled

public boolean isElementCacheEnabled()
Get the current mode for element cache.

Returns:
true if element cache is active, false otherwise.

getElementCache

public CmsElementCache getElementCache()
Get the CmsElementCache object. This is the starting point for the element cache area.

Returns:
CmsElementCachee

getAcceptedLanguages

public Vector getAcceptedLanguages()
Get a Vector of all accepted languages for this request. Languages are coded in international shortcuts like "en" or "de". If the browser has sent special versions of languages (e.g. "de-ch" for Swiss-German) these extensions will be cut off.

Returns:
Vector of Strings with language codes or null if no request object is available.

getSiteRoot

public String getSiteRoot(String resourcename)
Returns the name of the current site root, e.g. /default/vfs

Parameters:
resourcename -
Returns:
String The resourcename with its site root

getDirectoryTranslator

public CmsResourceTranslator getDirectoryTranslator()
Returns:
The directory name translator this context was initialized with

getFileTranslator

public CmsResourceTranslator getFileTranslator()
Returns:
The file name translator this context was initialized with

getSiteName

public String getSiteName()
Returns the site name, e.g. /default

Returns:
the site name, e.g. /default

getSiteRoot

public String getSiteRoot()
Returns the site root, e.g. /default/vfs * @return the site root, e.g. /default/vfs


setContextTo

public void setContextTo(String name)
Sets the name of the current site root of the virtual file system


initEncoding

public void initEncoding()
Detects current content encoding to be used in HTTP response based on requested resource or session state.


getEncoding

public String getEncoding()
Returns the current content encoding to be used in HTTP response


setEncoding

public void setEncoding(String encoding)
Sets the current content encoding to be used in HTTP response


setEncoding

public void setEncoding(String encoding,
                        boolean storeInSession)
Sets the current content encoding to be used in HTTP response and store it in session if it is available


setEventControlled

public void setEventControlled(boolean value)
Mark this request context as event controlled.


isEventControlled

public boolean isEventControlled()
Check if this request context is event controlled.

Returns:
true if the request context is event controlled, false otherwise

setUpdateSessionEnabled

public void setUpdateSessionEnabled(boolean value)
Mark this request context to update the session or not.


isUpdateSessionEnabled

public boolean isUpdateSessionEnabled()
Check if this request context will update the session.

Returns:
true if this request context will update the session, false otherwise

getAttribute

public Object getAttribute(String attributeName)
Gets the value of an attribute from the OpenCms request context attribute list.

Parameters:
attributeName - the attribute name
Returns:
Object the attribute value, or null if the attribute was not found

setAttribute

public void setAttribute(String key,
                         Object value)
Sets an attribute in the request context.

Parameters:
key - the attribute name
value - the attribute value