com.caucho.portal.generic.context
Class ConnectionContext

java.lang.Object
  extended by com.caucho.portal.generic.context.ConnectionContext

public class ConnectionContext
extends java.lang.Object

ConnectionContext tracks the state of a PortletConnection and provides methods for all operations that affect the connection. InterfaceImpl classes implement interfaces and delegate all operations to the ConnectionContext.

Some of the state of the connection depends on the "current window". The ConnectionContext maintains a stack of WindowContext.


Constructor Summary
ConnectionContext(PortletConnection connection)
           
 
Method Summary
 void addProperty(java.lang.String key, java.lang.String value)
           
 boolean canGuaranteeConfidentiality()
           
 boolean canGuaranteeIntegrity()
           
protected  void checkAlwaysWriteOrStream()
          If the current window has a renderer that is always-write or always-stream, call getWriter() or getOutputStream()
protected  void checkConstraints()
          Check for constraint failures and if any are encountered set the _windowContext appropriately.
protected  void checkWindowMutable(java.lang.String namespace)
           
 PortalURL createActionURL()
           
protected  PortalURL createActionURL(Invocation invocation, boolean keepParameters)
           
 PortalURL createActionURL(java.lang.String namespace, boolean keepParameters)
           
 PortalURL createRenderURL()
           
protected  PortalURL createRenderURL(Invocation invocation, boolean keepParameters)
           
 PortalURL createRenderURL(java.lang.String namespace, boolean keepParameters)
           
protected  PortalURL createURL(InvocationURL url)
           
 java.lang.String encodeURL(java.lang.String path)
           
 void finish()
           
 void flushBuffer(boolean flushToClient)
           
protected  void forbidRedirectIfInActionStage()
           
 Action getAction(Window window, java.lang.String namespace)
           
 java.lang.String getActionParameter(java.lang.String name)
           
 java.util.Map<java.lang.String,java.lang.String[]> getActionParameterMap()
           
 java.util.Enumeration getActionParameterNames()
           
 java.lang.String[] getActionParameterValues(java.lang.String name)
           
 ActionRequest getActionRequest()
           
 ActionResponse getActionResponse()
           
 java.lang.Object getAttribute(java.lang.String name)
           
 java.util.Enumeration getAttributeNames()
           
 java.lang.String getAuthType()
           
 int getBufferSize()
           
 java.lang.String getCharacterEncoding()
           
protected  PortletConnection getConnection()
           
 int getConnectionExpirationCache()
           
 java.lang.String getContentType()
           
 java.lang.String getContextPath()
           
 Action getCurrentAction()
           
 Render getCurrentRender()
           
protected  Invocation getInvocation()
           
protected  Invocation getInvocation(java.lang.String namespace)
           
protected  InvocationFactory getInvocationFactory()
           
 java.util.Locale getLocale()
           
protected  java.lang.String getNamespace()
           
protected  java.lang.String getParameter(java.util.Map<java.lang.String,java.lang.String[]> map, java.lang.String name)
           
protected  java.util.Enumeration getParameterNames(java.util.Map<java.lang.String,java.lang.String[]> map)
           
protected  java.lang.String[] getParameterValues(java.util.Map<java.lang.String,java.lang.String[]> map, java.lang.String name)
           
 Portal getPortal()
           
 PortalContext getPortalContext()
           
 PortalRequest getPortalRequest()
           
 PortalResponse getPortalResponse()
           
 PortletMode getPortletMode()
           
 PortletMode getPortletMode(java.lang.String namespace)
           
 java.util.Set<PortletMode> getPortletModesUsed()
           
 java.io.OutputStream getPortletOutputStream()
           
 PortletRequest getPortletRequest()
           
 PortletResponse getPortletResponse()
           
 PortletSession getPortletSession()
           
 PortletSession getPortletSession(boolean create)
           
 PortletPreferences getPreferences()
           
protected  PreferencesStore getPreferencesStore()
           
 java.util.Enumeration getProperties(java.lang.String name)
           
 java.lang.String getProperty(java.lang.String name)
           
 java.util.Enumeration getPropertyNames()
           
 java.lang.String getRemoteUser()
           
 Render getRender(Window window, java.lang.String namespace)
           
protected  Renderer getRenderer()
           
protected  Renderer getRenderer(java.lang.String namespace)
           
 java.lang.String getRenderParameter(java.lang.String name)
           
 java.lang.String getRenderParameter(java.lang.String namespace, java.lang.String name)
           
 java.util.Map<java.lang.String,java.lang.String[]> getRenderParameterMap()
           
 java.util.Map<java.lang.String,java.lang.String[]> getRenderParameterMap(java.lang.String namespace)
           
 java.util.Enumeration getRenderParameterNames()
           
 java.util.Enumeration getRenderParameterNames(java.lang.String namespace)
           
 java.lang.String[] getRenderParameterValues(java.lang.String name)
           
 java.lang.String[] getRenderParameterValues(java.lang.String namespace, java.lang.String name)
           
 RenderRequest getRenderRequest()
           
 RenderResponse getRenderResponse()
           
 java.lang.String getRequestedSessionId()
           
 java.lang.String getResponseCharacterEncoding()
          Get the character encoding already established or get the most preferred character encoding.
 java.util.Set<java.lang.String> getResponseCharacterEncodingsSet()
          Get an ordered set containing all possible character encodings, the most preferred Locale occurring first.
 java.lang.String getResponseContentType()
           
 java.util.Set<java.lang.String> getResponseContentTypesSet()
           
 java.util.Locale getResponseLocale()
          Get the locale already established or get the most preferred locale.
 java.util.Set<java.util.Locale> getResponseLocalesSet()
          Get an ordered set containing all possible locales, the most preferred Locale occurring first.
 java.lang.String getScheme()
           
 java.lang.String getServerName()
           
 int getServerPort()
           
 java.lang.String getSubmitCharacterEncoding()
           
 int getSubmitContentLength()
           
 java.lang.String getSubmitContentType()
           
 java.io.InputStream getSubmitInputStream()
           
 java.io.BufferedReader getSubmitReader()
           
 java.util.Map<java.lang.String,java.lang.String> getUserAttributeMap()
           
protected  UserAttributeStore getUserAttributeStore()
           
 java.security.Principal getUserPrincipal()
           
protected  Window getWindow()
           
protected  Window getWindow(java.lang.String namespace)
           
 WindowState getWindowState()
           
 WindowState getWindowState(java.lang.String namespace)
           
 java.util.Set<WindowState> getWindowStatesUsed()
           
 java.io.PrintWriter getWriter()
           
protected  boolean handleConstraintFailure()
          See if the Window can handle the constraint.
protected  void handleException()
          See if the Window can handle the exception.
 boolean isCommitted()
           
protected  boolean isConnectionFailed()
           
 boolean isConnectionPrivate()
           
protected  boolean isForbidRedirect()
           
 boolean isPortletModeAllowed(PortletMode portletMode)
           
 boolean isPortletModeAllowed(java.lang.String namespace, PortletMode portletMode)
           
protected  boolean isPortletModeAllowed(Window window, PortletMode portletMode)
           
 boolean isRequestedSessionIdValid()
           
 boolean isSecure()
           
 boolean isTarget()
           
 boolean isUserInRole(java.lang.String role)
           
 boolean isWindowStateAllowed(java.lang.String namespace, WindowState windowState)
           
 boolean isWindowStateAllowed(WindowState windowState)
           
protected  boolean isWindowStateAllowed(Window window, WindowState windowState)
           
protected  void log(java.util.logging.Level level, java.lang.String message)
           
protected  void log(java.util.logging.Level level, java.lang.String message, java.lang.Exception ex)
           
protected  void log(java.lang.String namespace, java.util.logging.Level level, java.lang.String message)
           
protected  void log(java.lang.String namespace, java.util.logging.Level level, java.lang.String message, java.lang.Exception ex)
           
 void processAction(Portlet portlet)
           
 void removeAttribute(java.lang.String name)
           
 void render(Portlet portlet)
           
 void reset(boolean resetRenderer)
           
 void resetBuffer(boolean resetRenderer)
           
 java.lang.String resolveURL(java.lang.String path)
           
 java.lang.String resolveURL(java.lang.String path, boolean isSecure)
           
 void sendRedirect(java.lang.String location)
           
 void setAttribute(java.lang.String name, java.lang.Object o)
           
 void setBufferSize(int size)
           
protected  void setConnectionFailed()
           
protected  void setConnectionFailed(java.lang.Exception ex)
           
protected  void setConnectionPrivate()
           
 void setContentType(java.lang.String contentType)
           
protected  void setForbidRedirect()
           
protected  void setParameter(java.util.Map<java.lang.String,java.lang.String[]> map, java.lang.String name, java.lang.String value)
           
protected  void setParameter(java.util.Map<java.lang.String,java.lang.String[]> map, java.lang.String name, java.lang.String[] values)
           
protected  void setParameters(java.util.Map<java.lang.String,java.lang.String[]> destMap, java.util.Map<java.lang.String,java.lang.String[]> srcMap)
           
 void setPortletMode(PortletMode portletMode)
           
 void setPortletMode(java.lang.String namespace, PortletMode portletMode)
           
protected  void setPortletMode(Window window, java.lang.String namespace, Invocation invocation, PortletMode portletMode)
           
 void setProperty(java.lang.String key, java.lang.String value)
           
 void setRenderParameter(java.lang.String name, java.lang.String value)
           
 void setRenderParameter(java.lang.String name, java.lang.String[] values)
           
 void setRenderParameter(java.lang.String namespace, java.lang.String name, java.lang.String value)
           
 void setRenderParameter(java.lang.String namespace, java.lang.String name, java.lang.String[] values)
           
 void setRenderParameters(java.util.Map<java.lang.String,java.lang.String[]> srcMap)
           
 void setRenderParameters(java.lang.String namespace, java.util.Map<java.lang.String,java.lang.String[]> srcMap)
           
 void setSubmitCharacterEncoding(java.lang.String enc)
           
 void setTitle(java.lang.String title)
           
 void setWindowState(java.lang.String namespace, WindowState windowState)
           
 void setWindowState(WindowState windowState)
           
protected  void setWindowState(Window window, java.lang.String namespace, Invocation invocation, WindowState windowState)
           
 void start(InvocationFactory invocationFactory)
           
protected  void updateConnectionExpirationCache(int expirationCache)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConnectionContext

public ConnectionContext(PortletConnection connection)
Method Detail

start

public void start(InvocationFactory invocationFactory)

finish

public void finish()

log

protected void log(java.util.logging.Level level,
                   java.lang.String message)

log

protected void log(java.util.logging.Level level,
                   java.lang.String message,
                   java.lang.Exception ex)

log

protected void log(java.lang.String namespace,
                   java.util.logging.Level level,
                   java.lang.String message)

log

protected void log(java.lang.String namespace,
                   java.util.logging.Level level,
                   java.lang.String message,
                   java.lang.Exception ex)

getConnection

protected PortletConnection getConnection()

getInvocationFactory

protected InvocationFactory getInvocationFactory()

setConnectionFailed

protected void setConnectionFailed(java.lang.Exception ex)

setConnectionFailed

protected void setConnectionFailed()

isConnectionFailed

protected boolean isConnectionFailed()

getConnectionExpirationCache

public int getConnectionExpirationCache()

updateConnectionExpirationCache

protected void updateConnectionExpirationCache(int expirationCache)

isConnectionPrivate

public boolean isConnectionPrivate()

setConnectionPrivate

protected void setConnectionPrivate()

setForbidRedirect

protected void setForbidRedirect()

isForbidRedirect

protected boolean isForbidRedirect()

getPortalRequest

public PortalRequest getPortalRequest()

getPortalResponse

public PortalResponse getPortalResponse()

getPortal

public Portal getPortal()

getPortalContext

public PortalContext getPortalContext()

getPreferencesStore

protected PreferencesStore getPreferencesStore()

getUserAttributeStore

protected UserAttributeStore getUserAttributeStore()

handleException

protected void handleException()
                        throws PortletException,
                               java.io.IOException
See if the Window can handle the exception. Return true if the exception has been handled in some way. Side-effect: might set windows.isExcluded to true might set window.setException to null if it is handled

Throws:
PortletException
java.io.IOException

checkConstraints

protected void checkConstraints()
Check for constraint failures and if any are encountered set the _windowContext appropriately.


handleConstraintFailure

protected boolean handleConstraintFailure()
                                   throws PortletException,
                                          java.io.IOException
See if the Window can handle the constraint. Return true if the constraint has been handled in some way. Side-effect: might set isExcluded to true

Throws:
PortletException
java.io.IOException

getPortletRequest

public PortletRequest getPortletRequest()

getPortletResponse

public PortletResponse getPortletResponse()

getAction

public Action getAction(Window window,
                        java.lang.String namespace)
                 throws PortletException,
                        java.io.IOException
Throws:
PortletException
java.io.IOException

getCurrentAction

public Action getCurrentAction()

isTarget

public boolean isTarget()

getActionRequest

public ActionRequest getActionRequest()

getActionResponse

public ActionResponse getActionResponse()

processAction

public void processAction(Portlet portlet)

getRender

public Render getRender(Window window,
                        java.lang.String namespace)
                 throws PortletException,
                        java.io.IOException
Throws:
PortletException
java.io.IOException

getRenderRequest

public RenderRequest getRenderRequest()

getRenderResponse

public RenderResponse getRenderResponse()

render

public void render(Portlet portlet)
            throws PortletException,
                   java.io.IOException
Throws:
PortletException
java.io.IOException

getCurrentRender

public Render getCurrentRender()

checkWindowMutable

protected void checkWindowMutable(java.lang.String namespace)
                           throws java.lang.IllegalStateException,
                                  java.lang.IllegalArgumentException
Throws:
java.lang.IllegalStateException - if the window with the namespace has already been processed as the target of an action, or already renderered.
java.lang.IllegalArgumentException - if the window with the namespace is not found

getWindow

protected Window getWindow()

getWindow

protected Window getWindow(java.lang.String namespace)

getNamespace

protected java.lang.String getNamespace()

getRenderer

protected Renderer getRenderer()

getRenderer

protected Renderer getRenderer(java.lang.String namespace)

getInvocation

protected Invocation getInvocation()

getInvocation

protected Invocation getInvocation(java.lang.String namespace)

forbidRedirectIfInActionStage

protected void forbidRedirectIfInActionStage()

getWindowStatesUsed

public java.util.Set<WindowState> getWindowStatesUsed()

getPortletModesUsed

public java.util.Set<PortletMode> getPortletModesUsed()

isPortletModeAllowed

protected boolean isPortletModeAllowed(Window window,
                                       PortletMode portletMode)

setPortletMode

protected void setPortletMode(Window window,
                              java.lang.String namespace,
                              Invocation invocation,
                              PortletMode portletMode)
                       throws PortletModeException
Throws:
PortletModeException

isPortletModeAllowed

public boolean isPortletModeAllowed(PortletMode portletMode)

isPortletModeAllowed

public boolean isPortletModeAllowed(java.lang.String namespace,
                                    PortletMode portletMode)

getPortletMode

public PortletMode getPortletMode()

getPortletMode

public PortletMode getPortletMode(java.lang.String namespace)

setPortletMode

public void setPortletMode(PortletMode portletMode)
                    throws PortletModeException
Throws:
PortletModeException

setPortletMode

public void setPortletMode(java.lang.String namespace,
                           PortletMode portletMode)
                    throws PortletModeException
Throws:
PortletModeException

isWindowStateAllowed

protected boolean isWindowStateAllowed(Window window,
                                       WindowState windowState)

setWindowState

protected void setWindowState(Window window,
                              java.lang.String namespace,
                              Invocation invocation,
                              WindowState windowState)
                       throws WindowStateException
Throws:
WindowStateException

isWindowStateAllowed

public boolean isWindowStateAllowed(WindowState windowState)

isWindowStateAllowed

public boolean isWindowStateAllowed(java.lang.String namespace,
                                    WindowState windowState)

getWindowState

public WindowState getWindowState()

getWindowState

public WindowState getWindowState(java.lang.String namespace)

setWindowState

public void setWindowState(WindowState windowState)
                    throws WindowStateException
Throws:
WindowStateException

setWindowState

public void setWindowState(java.lang.String namespace,
                           WindowState windowState)
                    throws WindowStateException
Throws:
WindowStateException

getActionParameterMap

public java.util.Map<java.lang.String,java.lang.String[]> getActionParameterMap()

getRenderParameterMap

public java.util.Map<java.lang.String,java.lang.String[]> getRenderParameterMap()

getRenderParameterMap

public java.util.Map<java.lang.String,java.lang.String[]> getRenderParameterMap(java.lang.String namespace)

getParameter

protected java.lang.String getParameter(java.util.Map<java.lang.String,java.lang.String[]> map,
                                        java.lang.String name)

getParameterValues

protected java.lang.String[] getParameterValues(java.util.Map<java.lang.String,java.lang.String[]> map,
                                                java.lang.String name)

getParameterNames

protected java.util.Enumeration getParameterNames(java.util.Map<java.lang.String,java.lang.String[]> map)

setParameter

protected void setParameter(java.util.Map<java.lang.String,java.lang.String[]> map,
                            java.lang.String name,
                            java.lang.String value)

setParameters

protected void setParameters(java.util.Map<java.lang.String,java.lang.String[]> destMap,
                             java.util.Map<java.lang.String,java.lang.String[]> srcMap)

setParameter

protected void setParameter(java.util.Map<java.lang.String,java.lang.String[]> map,
                            java.lang.String name,
                            java.lang.String[] values)

getActionParameter

public java.lang.String getActionParameter(java.lang.String name)

getActionParameterValues

public java.lang.String[] getActionParameterValues(java.lang.String name)

getActionParameterNames

public java.util.Enumeration getActionParameterNames()

getRenderParameter

public java.lang.String getRenderParameter(java.lang.String name)

getRenderParameterValues

public java.lang.String[] getRenderParameterValues(java.lang.String name)

getRenderParameterNames

public java.util.Enumeration getRenderParameterNames()

setRenderParameters

public void setRenderParameters(java.util.Map<java.lang.String,java.lang.String[]> srcMap)

setRenderParameter

public void setRenderParameter(java.lang.String name,
                               java.lang.String value)

setRenderParameter

public void setRenderParameter(java.lang.String name,
                               java.lang.String[] values)

getRenderParameter

public java.lang.String getRenderParameter(java.lang.String namespace,
                                           java.lang.String name)

getRenderParameterValues

public java.lang.String[] getRenderParameterValues(java.lang.String namespace,
                                                   java.lang.String name)

getRenderParameterNames

public java.util.Enumeration getRenderParameterNames(java.lang.String namespace)

setRenderParameters

public void setRenderParameters(java.lang.String namespace,
                                java.util.Map<java.lang.String,java.lang.String[]> srcMap)

setRenderParameter

public void setRenderParameter(java.lang.String namespace,
                               java.lang.String name,
                               java.lang.String value)

setRenderParameter

public void setRenderParameter(java.lang.String namespace,
                               java.lang.String name,
                               java.lang.String[] values)

createURL

protected PortalURL createURL(InvocationURL url)

createRenderURL

protected PortalURL createRenderURL(Invocation invocation,
                                    boolean keepParameters)

createActionURL

protected PortalURL createActionURL(Invocation invocation,
                                    boolean keepParameters)

createRenderURL

public PortalURL createRenderURL()

createActionURL

public PortalURL createActionURL()

createRenderURL

public PortalURL createRenderURL(java.lang.String namespace,
                                 boolean keepParameters)

createActionURL

public PortalURL createActionURL(java.lang.String namespace,
                                 boolean keepParameters)

getPreferences

public PortletPreferences getPreferences()

getUserAttributeMap

public java.util.Map<java.lang.String,java.lang.String> getUserAttributeMap()
                                                                     throws java.io.IOException
Throws:
java.io.IOException

setTitle

public void setTitle(java.lang.String title)

getResponseLocale

public java.util.Locale getResponseLocale()
Get the locale already established or get the most preferred locale.


getResponseLocalesSet

public java.util.Set<java.util.Locale> getResponseLocalesSet()
Get an ordered set containing all possible locales, the most preferred Locale occurring first. If the locale is already established a Set containing only the established locale is returned, if the established locale is not one of the supported locales specified in the configuration an empty set is returned.


getResponseCharacterEncoding

public java.lang.String getResponseCharacterEncoding()
Get the character encoding already established or get the most preferred character encoding.


getResponseCharacterEncodingsSet

public java.util.Set<java.lang.String> getResponseCharacterEncodingsSet()
Get an ordered set containing all possible character encodings, the most preferred Locale occurring first. If the character encoding is already established a Set containing only the established character encoding is returned, if the established character encoding is not one of the supported character encodings specified in the configuration an empty set is returned.


getResponseContentType

public java.lang.String getResponseContentType()

getResponseContentTypesSet

public java.util.Set<java.lang.String> getResponseContentTypesSet()

getContentType

public java.lang.String getContentType()

setContentType

public void setContentType(java.lang.String contentType)

getLocale

public java.util.Locale getLocale()

addProperty

public void addProperty(java.lang.String key,
                        java.lang.String value)

setProperty

public void setProperty(java.lang.String key,
                        java.lang.String value)

getCharacterEncoding

public java.lang.String getCharacterEncoding()

getWriter

public java.io.PrintWriter getWriter()
                              throws java.io.IOException
Throws:
java.io.IOException

setBufferSize

public void setBufferSize(int size)

getBufferSize

public int getBufferSize()

flushBuffer

public void flushBuffer(boolean flushToClient)
                 throws java.io.IOException
Parameters:
flushToClient - true flush all buffers through to the client. If false, flush only the buffers for the current window
Throws:
java.io.IOException

reset

public void reset(boolean resetRenderer)
Parameters:
resetRenderer - if true, reset all of the buffers for the current window. If false, reset all of the buffers until the RendererResponseHandler, reset that too but in such a way that it will write the decorations again.

checkAlwaysWriteOrStream

protected void checkAlwaysWriteOrStream()
                                 throws java.io.IOException
If the current window has a renderer that is always-write or always-stream, call getWriter() or getOutputStream()

Throws:
java.io.IOException

resetBuffer

public void resetBuffer(boolean resetRenderer)

isCommitted

public boolean isCommitted()

getPortletOutputStream

public java.io.OutputStream getPortletOutputStream()
                                            throws java.io.IOException
Throws:
java.io.IOException

isUserInRole

public boolean isUserInRole(java.lang.String role)

getRemoteUser

public java.lang.String getRemoteUser()

getUserPrincipal

public java.security.Principal getUserPrincipal()

getAuthType

public java.lang.String getAuthType()

isSecure

public boolean isSecure()

getRequestedSessionId

public java.lang.String getRequestedSessionId()

isRequestedSessionIdValid

public boolean isRequestedSessionIdValid()

canGuaranteeIntegrity

public boolean canGuaranteeIntegrity()

canGuaranteeConfidentiality

public boolean canGuaranteeConfidentiality()

getContextPath

public java.lang.String getContextPath()

getServerName

public java.lang.String getServerName()

getServerPort

public int getServerPort()

getScheme

public java.lang.String getScheme()

getProperty

public java.lang.String getProperty(java.lang.String name)

getProperties

public java.util.Enumeration getProperties(java.lang.String name)

getPropertyNames

public java.util.Enumeration getPropertyNames()

getAttributeNames

public java.util.Enumeration getAttributeNames()

getAttribute

public java.lang.Object getAttribute(java.lang.String name)

setAttribute

public void setAttribute(java.lang.String name,
                         java.lang.Object o)

removeAttribute

public void removeAttribute(java.lang.String name)

getPortletSession

public PortletSession getPortletSession()

getPortletSession

public PortletSession getPortletSession(boolean create)

getSubmitInputStream

public java.io.InputStream getSubmitInputStream()
                                         throws java.io.IOException
Throws:
java.io.IOException

setSubmitCharacterEncoding

public void setSubmitCharacterEncoding(java.lang.String enc)
                                throws java.io.UnsupportedEncodingException
Throws:
java.io.UnsupportedEncodingException

getSubmitCharacterEncoding

public java.lang.String getSubmitCharacterEncoding()

getSubmitReader

public java.io.BufferedReader getSubmitReader()
                                       throws java.io.UnsupportedEncodingException,
                                              java.io.IOException
Throws:
java.io.UnsupportedEncodingException
java.io.IOException

getSubmitContentType

public java.lang.String getSubmitContentType()

getSubmitContentLength

public int getSubmitContentLength()

resolveURL

public java.lang.String resolveURL(java.lang.String path)

resolveURL

public java.lang.String resolveURL(java.lang.String path,
                                   boolean isSecure)
                            throws PortletSecurityException
Throws:
PortletSecurityException

encodeURL

public java.lang.String encodeURL(java.lang.String path)

sendRedirect

public void sendRedirect(java.lang.String location)
                  throws java.io.IOException
Throws:
java.io.IOException