blob: 37a40ffaadcab6e7d23d2eecd2881fcbb6c0429b [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package javax.faces.context;
import java.io.IOException;
import java.io.OutputStream;
import java.io.Writer;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import javax.faces.lifecycle.ClientWindow;
/**
* see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>
*/
public abstract class ExternalContext
{
public static final String BASIC_AUTH = "BASIC";
public static final String CLIENT_CERT_AUTH = "CLIENT_CERT";
public static final String DIGEST_AUTH = "DIGEST";
public static final String FORM_AUTH = "FORM";
/**
*
* @param name
* @param value
* @param properties
*
* @since 2.0
*/
public void addResponseCookie(String name, String value, Map<String, Object> properties)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.addResponseCookie(name, value, properties);
}
/**
*
* @param name
* @param value
*
* @since 2.0
*/
public void addResponseHeader(String name, String value)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.addResponseHeader(name, value);
}
public abstract void dispatch(String path) throws IOException;
public abstract String encodeActionURL(String url);
/**
*
* @param baseUrl
* @param parameters
*
* @since 2.0
*/
public String encodeBookmarkableURL(String baseUrl, Map<String,List<String>> parameters)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.encodeBookmarkableURL(baseUrl, parameters);
}
public abstract String encodeNamespace(String name);
/**
* @since 2.0
*/
public String encodePartialActionURL(String url)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.encodePartialActionURL(url);
}
/**
*
* @param baseUrl
* @param parameters
*
* @since 2.0
*/
public String encodeRedirectURL(String baseUrl, Map<String,List<String>> parameters)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.encodeRedirectURL(baseUrl, parameters);
}
public abstract String encodeResourceURL(String url);
public abstract Map<String, Object> getApplicationMap();
public abstract String getAuthType();
public abstract Object getContext();
/**
* Returns the name of the underlying context
*
* @return the name or null
*
* @since 2.0
*/
public String getContextName()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getContextName();
}
/**
* @since 2.0
*/
public Flash getFlash()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getFlash();
}
public abstract String getInitParameter(String name);
public abstract Map<String,String> getInitParameterMap();
/**
* @since JSF 2.0
*/
public String getMimeType(String file)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getMimeType(file);
}
/**
* @since JSF 2.0
*/
public String getRealPath(String path)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getRealPath(path);
}
public abstract String getRemoteUser();
public abstract Object getRequest();
public String getRequestCharacterEncoding()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getRequestCharacterEncoding();
}
/**
*
* @return
*
* @since 2.0
*/
public int getRequestContentLength()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getRequestContentLength();
}
public String getRequestContentType()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getRequestContentType();
}
public abstract String getRequestContextPath();
public abstract Map<String, Object> getRequestCookieMap();
public abstract Map<String, String> getRequestHeaderMap();
public abstract Map<String, String[]> getRequestHeaderValuesMap();
public abstract Locale getRequestLocale();
public abstract Iterator<Locale> getRequestLocales();
public abstract Map<String, Object> getRequestMap();
public abstract Map<String, String> getRequestParameterMap();
public abstract Iterator<String> getRequestParameterNames();
public abstract Map<String, String[]> getRequestParameterValuesMap();
public abstract String getRequestPathInfo();
/**
* @since JSF 2.0
*/
public String getRequestScheme()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getRequestScheme();
}
/**
* @since JSF 2.0
*/
public String getRequestServerName()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getRequestServerName();
}
/**
* @since JSF 2.0
*/
public int getRequestServerPort()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getRequestServerPort();
}
public abstract String getRequestServletPath();
public abstract java.net.URL getResource(String path) throws java.net.MalformedURLException;
public abstract java.io.InputStream getResourceAsStream(String path);
public abstract Set<String> getResourcePaths(String path);
public abstract Object getResponse();
/**
*
* @return
*
* @since 2.0
*/
public int getResponseBufferSize()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getResponseBufferSize();
}
public String getResponseCharacterEncoding()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException("JSF 1.2 : figure out how to tell if this is a Portlet request");
}
return ctx.getResponseCharacterEncoding();
}
/**
* throws <code>UnsupportedOperationException</code> by default.
*
* @since JSF 1.2
*/
public String getResponseContentType()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getResponseContentType();
}
/**
* @since JSF 2.0
*/
public OutputStream getResponseOutputStream() throws IOException
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getResponseOutputStream();
}
/**
* @since JSF 2.0
*/
public Writer getResponseOutputWriter() throws IOException
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getResponseOutputWriter();
}
public abstract Object getSession(boolean create);
public abstract Map<String, Object> getSessionMap();
public abstract java.security.Principal getUserPrincipal();
/**
* @since 2.0
*/
public void invalidateSession()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.invalidateSession();
}
/**
* @since 2.0
*/
public boolean isResponseCommitted()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.isResponseCommitted();
}
public abstract boolean isUserInRole(String role);
/**
* @since 2.0
*/
public abstract void log(String message);
/**
* @since 2.0
*/
public abstract void log(String message, Throwable exception);
public abstract void redirect(String url) throws java.io.IOException;
/**
*
* @throws IOException
*
* @since 2.0
*/
public void responseFlushBuffer() throws IOException
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.responseFlushBuffer();
}
/**
*
* @since 2.0
*/
public void responseReset()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.responseReset();
}
/**
*
* @param statusCode
* @param message
* @throws IOException
*
* @since 2.0
*/
public void responseSendError(int statusCode, String message) throws IOException
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.responseSendError(statusCode, message);
}
/**
* throws <code>UnsupportedOperationException</code> by default.
*
* @since JSF 1.2
* @param request
*/
public void setRequest(Object request)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.setRequest(request);
}
/**
* throws <code>UnsupportedOperationException</code> by default.
*
* @since JSF 1.2
* @param encoding
* @throws java.io.UnsupportedEncodingException
*/
public void setRequestCharacterEncoding(java.lang.String encoding)
throws java.io.UnsupportedEncodingException
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.setRequestCharacterEncoding(encoding);
}
/**
* throws <code>UnsupportedOperationException</code> by default.
*
* @since JSF 1.2
* @param response
*/
public void setResponse(Object response)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.setResponse(response);
}
/**
*
* @param size
*
* @since 2.0
*/
public void setResponseBufferSize(int size)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.setResponseBufferSize(size);
}
/**
* throws <code>UnsupportedOperationException</code> by default.
*
* @since JSF 1.2
* @param encoding
*/
public void setResponseCharacterEncoding(String encoding)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.setResponseCharacterEncoding(encoding);
}
/**
*
* @param length
*
* @since 2.0
*/
public void setResponseContentLength(int length)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.setResponseContentLength(length);
}
/**
*
* @param contentType
*
* @since 2.0
*/
public void setResponseContentType(String contentType)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.setResponseContentType(contentType);
}
/**
*
* @param name
* @param value
*
* @since 2.0
*/
public void setResponseHeader(String name, String value)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.setResponseHeader(name, value);
}
/**
*
* @param statusCode
*
* @since 2.0
*/
public void setResponseStatus(int statusCode)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.setResponseStatus(statusCode);
}
/**
*
* @since 2.1
* @return
*/
public boolean isSecure()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.isSecure();
}
/**
*
* @since 2.1
* @return
*/
public int getSessionMaxInactiveInterval()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getSessionMaxInactiveInterval();
}
/**
*
* @since 2.1
* @param interval
*/
public void setSessionMaxInactiveInterval(int interval)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.setSessionMaxInactiveInterval(interval);
}
/**
* @since 2.2
* @return
*/
public ClientWindow getClientWindow()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getClientWindow();
}
/**
* @since 2.2
* @param window
*/
public void setClientWindow(ClientWindow window)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
ctx.setClientWindow(window);
}
/**
* @since 2.2
* @param create
* @return
*/
public String getSessionId(boolean create)
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getSessionId(create);
}
/**
* @since 2.2
* @return
*/
public String getApplicationContextPath()
{
ExternalContext ctx = _MyFacesExternalContextHelper.firstInstance.get();
if (ctx == null)
{
throw new UnsupportedOperationException();
}
return ctx.getApplicationContextPath();
}
/**
* @since 2.3
* @param url
* @return
*/
public abstract String encodeWebsocketURL(String url);
/**
* @since 2.3-next
*/
public abstract void release();
}