Class AbstractWebContext
- java.lang.Object
-
- org.nuxeo.ecm.webengine.model.impl.AbstractWebContext
-
- All Implemented Interfaces:
WebContext,Adaptable
- Direct Known Subclasses:
DefaultContext
public abstract class AbstractWebContext extends Object implements WebContext
- Author:
- Bogdan Stefanescu
-
-
Field Summary
Fields Modifier and Type Field Description protected StringbasePathprotected static LocaleDEFAULT_LOCALEprotected WebEngineengineprotected FormDataformprotected Resourceheadstatic StringLOCALE_SESSION_KEYprotected Modulemoduleprotected javax.servlet.http.HttpServletRequestrequestprotected javax.servlet.http.HttpServletResponseresponseprotected Resourcerootprotected LinkedList<File>scriptExecutionStackprotected Resourcetailprotected Map<String,Object>vars-
Fields inherited from interface org.nuxeo.ecm.webengine.model.WebContext
NUXEO_WEBENGINE_BASE_PATH
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractWebContext(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancheckGuard(String guard)Check the given expression in this context and return true if the expression is verified or false otherwise.Map<String,Object>createBindings(Map<String,Object> vars)<T> TgetAdapter(Class<T> adapter)Returns an object which is an instance of the given class associated with this object.StringgetBasePath()Gets the path of the servlet.StringgetBaseURL()Gets the URL of the base path.StringgetCookie(String name)Convenience method to get a cookie value.StringgetCookie(String name, String defaultValue)Convenience method to get a cookie value using a default value.CoreSessiongetCoreSession()Gets the Core Session (or Repository Session) corresponding to that request.FilegetCurrentScriptDirectory()FilegetCurrentScriptFile()WebEnginegetEngine()Gets the web engine instance.ScriptFilegetFile(String path)template and script resolverFormDatagetForm()Gets the representation of the data form submitted by the user.LocalegetLocale()Gets the context locale.LoggetLog()Gets a logger to be used by scripts for logging.StringgetLoginPath()Gets the login path for the current context.StringgetMessage(String key)Gets the i18n message for the given key.StringgetMessage(String key, Object... args)The same asWebContext.getMessage(String)but with parameter supportStringgetMessage(String key, List<Object> args)The same asWebContext.getMessage(String)but with parameter supportStringgetMessageL(String key, String language)Same asWebContext.getMessage(String)but uses the given locale.StringgetMessageL(String key, String locale, Object... args)The same asWebContext.getMessage(String)but uses the given locale, with parameter supportStringgetMessageL(String key, String locale, List<Object> args)The same asWebContext.getMessage(String)but uses the given locale, with parameter support.StringgetMethod()Get HTTP Method.ModulegetModule()Gets the current web application.StringgetModulePath()Get the path prefix that identify the current web application.NuxeoPrincipalgetPrincipal()Gets the principal identifying the user that originated the request.ObjectgetProperty(String key)Gets a context variable.ObjectgetProperty(String key, Object defaultValue)Gets a context variable.javax.servlet.http.HttpServletRequestgetRequest()Gets the underlying HTTP servlet request object.javax.servlet.http.HttpServletResponsegetResponse()ResourcegetRoot()Gets the root resource if any resource was defined as being the rootStringBuildergetServerURL()Gets the server URL without any path or trailing /.AdapterResourcegetTargetAdapter()ResourcegetTargetObject()StringgetURI()Returns the part of this request's URL from the protocol name up to the query string in the first line of the HTTP request.StringgetURL()Gets the URL requested by the client.StringgetUrlPath()Gets the path portion of the request URL.StringgetUrlPath(DocumentModel document)This method is working only for root objects that implementModuleResourceStringBuildergetUrlPathBuffer()UserSessiongetUserSession()Gets the current user session.Resourcehead()protected voidinitializeBindings(Map<String,Object> bindings)static booleanisRepositorySupportDisabled()AdapterResourcenewAdapter(Resource ctx, String serviceName, Object... args)ResourcenewObject(String typeName, Object... args)ResourcenewObject(ResourceType type, Object... args)Resourcepop()FilepopScriptFile()Resourcepush(Resource rs)voidpushScriptFile(File file)voidrender(String template, Writer writer)Renders the given template using the rendering engine registered in that web engine.voidrender(String template, Object ctx, Writer writer)Renders the given template using the rendering engine registered in that web engine.voidrender(ScriptFile script, Object ctx, Writer writer)Renders the given template using the rendering engine registered in that web engine.ObjectrunScript(String script)Runs the given script.ObjectrunScript(String script, Map<String,Object> args)Runs the given script.ObjectrunScript(ScriptFile script, Map<String,Object> args)Runs the script using given argumentsstatic voidsetIsRepositorySupportDisabled(boolean isRepositoryDisabled)Can be used by the application to disable injecting repository sessions in scripting context.voidsetLocale(Locale locale)Sets the current locale, that will be kept in context.voidsetModule(Module module)voidsetProperty(String key, Object value)Sets a context variable.voidsetRepositoryName(String repoName)Sets the repository name that will be used byWebContext.getCoreSession().voidsetRoot(Resource root)Set the root resource of this contextResourcetail()-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.nuxeo.ecm.webengine.model.WebContext
getHttpHeaders, getServerHttpContext, getServerInjectableProviderContext, getUriInfo
-
-
-
-
Field Detail
-
DEFAULT_LOCALE
protected static final Locale DEFAULT_LOCALE
-
LOCALE_SESSION_KEY
public static final String LOCALE_SESSION_KEY
- See Also:
- Constant Field Values
-
engine
protected final WebEngine engine
-
scriptExecutionStack
protected final LinkedList<File> scriptExecutionStack
-
request
protected final javax.servlet.http.HttpServletRequest request
-
response
protected final javax.servlet.http.HttpServletResponse response
-
head
protected Resource head
-
tail
protected Resource tail
-
root
protected Resource root
-
module
protected Module module
-
form
protected FormData form
-
basePath
protected String basePath
-
-
Method Detail
-
setModule
public void setModule(Module module)
-
getRoot
public Resource getRoot()
Description copied from interface:WebContextGets the root resource if any resource was defined as being the rootA root resource can be any resource from the resource chain.
- Specified by:
getRootin interfaceWebContext- Returns:
- the root resource or null if no root was defined
-
setRoot
public void setRoot(Resource root)
Description copied from interface:WebContextSet the root resource of this context- Specified by:
setRootin interfaceWebContext
-
getAdapter
public <T> T getAdapter(Class<T> adapter)
Description copied from interface:AdaptableReturns an object which is an instance of the given class associated with this object. Returnsnullif no such object can be found.- Specified by:
getAdapterin interfaceAdaptable- Parameters:
adapter- the adapter class to look up- Returns:
- a object castable to the given class, or
nullif this object does not have an adapter for the given class
-
getModule
public Module getModule()
Description copied from interface:WebContextGets the current web application.- Specified by:
getModulein interfaceWebContext- Returns:
- the web root. Cannot return null.
-
getEngine
public WebEngine getEngine()
Description copied from interface:WebContextGets the web engine instance.- Specified by:
getEnginein interfaceWebContext- Returns:
- the web engine instance. Cannot return null
-
getUserSession
public UserSession getUserSession()
Description copied from interface:WebContextGets the current user session.The user session is a WebEngine abstraction for the current user session and can be used to retrieve current login, core session, and to set or get user session variables.
- Specified by:
getUserSessionin interfaceWebContext- Returns:
- the user session. Never returns null.
-
getCoreSession
public CoreSession getCoreSession()
Description copied from interface:WebContextGets the Core Session (or Repository Session) corresponding to that request.- Specified by:
getCoreSessionin interfaceWebContext- Returns:
- the core session. Cannot return null
-
getPrincipal
public NuxeoPrincipal getPrincipal()
Description copied from interface:WebContextGets the principal identifying the user that originated the request.- Specified by:
getPrincipalin interfaceWebContext- Returns:
- the current principal. Can return null if the user has not been authenticated.
-
getRequest
public javax.servlet.http.HttpServletRequest getRequest()
Description copied from interface:WebContextGets the underlying HTTP servlet request object.- Specified by:
getRequestin interfaceWebContext- Returns:
- the HTTP Request object. Cannot return null
-
getResponse
public javax.servlet.http.HttpServletResponse getResponse()
-
getMethod
public String getMethod()
Description copied from interface:WebContextGet HTTP Method.- Specified by:
getMethodin interfaceWebContext- Returns:
- the method
-
getModulePath
public String getModulePath()
Description copied from interface:WebContextGet the path prefix that identify the current web application.The application path will include the base path (context + servlet path).
- Specified by:
getModulePathin interfaceWebContext- Returns:
- the application path. Cannot be null
-
getMessage
public String getMessage(String key)
Description copied from interface:WebContextGets the i18n message for the given key.The current module i18n messages are queried first then if no message is found the global message pool is queried (the one living in WEB-INF/i18n). If no message is found the key surrounded by exclamation marks is returned.
- Specified by:
getMessagein interfaceWebContext- Parameters:
key- the message key- Returns:
- the message
-
getMessage
public String getMessage(String key, Object... args)
Description copied from interface:WebContextThe same asWebContext.getMessage(String)but with parameter support- Specified by:
getMessagein interfaceWebContext
-
getMessage
public String getMessage(String key, List<Object> args)
Description copied from interface:WebContextThe same asWebContext.getMessage(String)but with parameter support- Specified by:
getMessagein interfaceWebContext
-
getMessageL
public String getMessageL(String key, String language)
Description copied from interface:WebContextSame asWebContext.getMessage(String)but uses the given locale.- Specified by:
getMessageLin interfaceWebContext- Parameters:
key- the message keylanguage- the locale to use- Returns:
- the message
-
getMessageL
public String getMessageL(String key, String locale, Object... args)
Description copied from interface:WebContextThe same asWebContext.getMessage(String)but uses the given locale, with parameter support- Specified by:
getMessageLin interfaceWebContext
-
getMessageL
public String getMessageL(String key, String locale, List<Object> args)
Description copied from interface:WebContextThe same asWebContext.getMessage(String)but uses the given locale, with parameter support.- Specified by:
getMessageLin interfaceWebContext
-
getLocale
public Locale getLocale()
Description copied from interface:WebContextGets the context locale.If the locale has been set using
WebContext.setLocale(Locale), returns the last locale set. Otherwise, compute it from the Accept-Language language sent by the client, usingServletRequest.getLocale().- Specified by:
getLocalein interfaceWebContext- Returns:
- the context locale
-
setLocale
public void setLocale(Locale locale)
Description copied from interface:WebContextSets the current locale, that will be kept in context.- Specified by:
setLocalein interfaceWebContext
-
newObject
public Resource newObject(String typeName, Object... args)
- Specified by:
newObjectin interfaceWebContext
-
newObject
public Resource newObject(ResourceType type, Object... args)
- Specified by:
newObjectin interfaceWebContext
-
newAdapter
public AdapterResource newAdapter(Resource ctx, String serviceName, Object... args)
- Specified by:
newAdapterin interfaceWebContext
-
setProperty
public void setProperty(String key, Object value)
Description copied from interface:WebContextSets a context variable.- Specified by:
setPropertyin interfaceWebContext- Parameters:
key- the variable keyvalue- the variable value- See Also:
WebContext.getProperty(String)
-
getProperty
public Object getProperty(String key)
Description copied from interface:WebContextGets a context variable.Context variables can be used to share data between the scripts that are called in that request (and between Java code too of course).
- Specified by:
getPropertyin interfaceWebContext- Parameters:
key- the variable key- Returns:
- the variable value or null if none
-
getProperty
public Object getProperty(String key, Object defaultValue)
Description copied from interface:WebContextGets a context variable.Context variables can be used to share data between the scripts that are called in that request (and between java code too of course).
- Specified by:
getPropertyin interfaceWebContext- Parameters:
key- the variable keydefaultValue- the default value to use if the property doesn't exists- Returns:
- the variable value or the given default value if none
-
getCookie
public String getCookie(String name)
Description copied from interface:WebContextConvenience method to get a cookie value.- Specified by:
getCookiein interfaceWebContext- Parameters:
name- the cookie name- Returns:
- the cookie value if any null otherwise
-
getCookie
public String getCookie(String name, String defaultValue)
Description copied from interface:WebContextConvenience method to get a cookie value using a default value.- Specified by:
getCookiein interfaceWebContext- Parameters:
name- the cookie namedefaultValue- the value to return when cookie is not set- Returns:
- the cookie value if any or the default if none
-
getForm
public FormData getForm()
Description copied from interface:WebContextGets the representation of the data form submitted by the user.This provides access to both POST and GET parameters, or to multipart form data requests.
- Specified by:
getFormin interfaceWebContext- Returns:
- the request form data. Cannot return null
-
getBasePath
public String getBasePath()
Description copied from interface:WebContextGets the path of the servlet. Same as servlet context path + servlet path.- Specified by:
getBasePathin interfaceWebContext- Returns:
- the site path
-
getBaseURL
public String getBaseURL()
Description copied from interface:WebContextGets the URL of the base path. This is the same asWebContext.getURL()after removing the path segments over the base path.- Specified by:
getBaseURLin interfaceWebContext- Returns:
- the base URL
-
getServerURL
public StringBuilder getServerURL()
Description copied from interface:WebContextGets the server URL without any path or trailing /. The returned string builder can be used to build the wanted URL. If the server is behind a proxy, return the server url of the proxy so writing the url in a webpage is safe.- Specified by:
getServerURLin interfaceWebContext- Returns:
- a string builder
-
getURI
public String getURI()
Description copied from interface:WebContextReturns the part of this request's URL from the protocol name up to the query string in the first line of the HTTP request. This is the same asHttpServletRequest.getRequestURI().- Specified by:
getURIin interfaceWebContext- Returns:
- the request URI. Cannot return null.
-
getURL
public String getURL()
Description copied from interface:WebContextGets the URL requested by the client. Same asHttpServletRequest.getRequestURL().- Specified by:
getURLin interfaceWebContext- Returns:
- the request URL. Cannot return null.
-
getUrlPathBuffer
public StringBuilder getUrlPathBuffer()
-
getUrlPath
public String getUrlPath()
Description copied from interface:WebContextGets the path portion of the request URL.- Specified by:
getUrlPathin interfaceWebContext- Returns:
- the path portion of the request URL. Cannot return null.
-
getLoginPath
public String getLoginPath()
Description copied from interface:WebContextGets the login path for the current context.This is the path you can use as a login form action to perform a login or a logout. After the login/logout is done the current page in that context will be served.
- Specified by:
getLoginPathin interfaceWebContext
-
getUrlPath
public String getUrlPath(DocumentModel document)
This method is working only for root objects that implementModuleResource- Specified by:
getUrlPathin interfaceWebContext- Parameters:
document- the nuxeo document- Returns:
- the path if any or null if no suitable path can be found XXX can this method return null?
-
getLog
public Log getLog()
Description copied from interface:WebContextGets a logger to be used by scripts for logging.- Specified by:
getLogin interfaceWebContext- Returns:
- a logger
-
push
public Resource push(Resource rs)
- Specified by:
pushin interfaceWebContext
-
pop
public Resource pop()
- Specified by:
popin interfaceWebContext
-
tail
public Resource tail()
- Specified by:
tailin interfaceWebContext
-
head
public Resource head()
- Specified by:
headin interfaceWebContext
-
getFile
public ScriptFile getFile(String path)
template and script resolver- Specified by:
getFilein interfaceWebContext- Parameters:
path- the path to resolve into a file- Returns:
- the file or null if the path couldn't be resolved
-
pushScriptFile
public void pushScriptFile(File file)
-
popScriptFile
public File popScriptFile()
-
getCurrentScriptFile
public File getCurrentScriptFile()
-
getCurrentScriptDirectory
public File getCurrentScriptDirectory()
-
render
public void render(String template, Writer writer)
Description copied from interface:WebContextRenders the given template using the rendering engine registered in that web engine.This is similar to the
WebContext.render(String, Object, Writer)method with a null value for the args argument.- Specified by:
renderin interfaceWebContext- Parameters:
template- the template to render. Can be a path absolute to the web directory or relative to the caller script if any.writer- the writer to use- See Also:
WebContext.render(String, Object, Writer)
-
render
public void render(String template, Object ctx, Writer writer)
Description copied from interface:WebContextRenders the given template using the rendering engine registered in that web engine. The given arguments are passed to the rendering process as context variables- Specified by:
renderin interfaceWebContext- Parameters:
template- the template to renderctx- the arguments to passwriter- the writer to use
-
render
public void render(ScriptFile script, Object ctx, Writer writer)
Description copied from interface:WebContextRenders the given template using the rendering engine registered in that web engine.The given arguments are passed to the rendering process as context variables.
- Specified by:
renderin interfaceWebContext- Parameters:
script- the template to renderctx- the arguments to passwriter- the writer to use
-
runScript
public Object runScript(String script)
Description copied from interface:WebContextRuns the given script.This is similar to
WebContext.runScript(String, Map)with a null value for the args argument- Specified by:
runScriptin interfaceWebContext- Parameters:
script- the script path. Can be a path absolute to the web directory or relative to the caller script if any.- See Also:
WebContext.runScript(String, Map)
-
runScript
public Object runScript(String script, Map<String,Object> args)
Description copied from interface:WebContextRuns the given script.- Specified by:
runScriptin interfaceWebContext- Parameters:
script- the script path. Can be a path absolute to the web directory or relative to the caller script if any.args- the arguments to pass
-
runScript
public Object runScript(ScriptFile script, Map<String,Object> args)
Description copied from interface:WebContextRuns the script using given argumentsThis is similar to
WebContext.runScript(String, Map)with a null value for the args argument- Specified by:
runScriptin interfaceWebContext- Parameters:
script- the script path. Can be a path absolute to the web directory or relative to the caller script if any.args- a map of arguments- See Also:
WebContext.runScript(String, Map)
-
checkGuard
public boolean checkGuard(String guard) throws ParseException
Description copied from interface:WebContextCheck the given expression in this context and return true if the expression is verified or false otherwise. Any valid guard expression is accepted- Specified by:
checkGuardin interfaceWebContext- Parameters:
guard- the guard to check- Throws:
ParseException- See Also:
Guard
-
getTargetObject
public Resource getTargetObject()
- Specified by:
getTargetObjectin interfaceWebContext
-
getTargetAdapter
public AdapterResource getTargetAdapter()
- Specified by:
getTargetAdapterin interfaceWebContext
-
isRepositorySupportDisabled
public static boolean isRepositorySupportDisabled()
-
setIsRepositorySupportDisabled
public static void setIsRepositorySupportDisabled(boolean isRepositoryDisabled)
Can be used by the application to disable injecting repository sessions in scripting context. If the application is not deploying a repository injecting a repository session will throw exceptions each time rendering is used.- Parameters:
isRepositoryDisabled- true to disable repository session injection, false otherwise
-
setRepositoryName
public void setRepositoryName(String repoName)
Description copied from interface:WebContextSets the repository name that will be used byWebContext.getCoreSession().- Specified by:
setRepositoryNamein interfaceWebContext
-
-