helma.framework
Class ResponseTrans

java.lang.Object
  extended by java.io.Writer
      extended by helma.framework.ResponseTrans
All Implemented Interfaces:
java.io.Closeable, java.io.Flushable, java.io.Serializable, java.lang.Appendable

public final class ResponseTrans
extends java.io.Writer
implements java.io.Serializable

A Transmitter for a response to the servlet client. Objects of this class are directly exposed to JavaScript as global property res.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class java.io.Writer
lock
 
Constructor Summary
ResponseTrans(Application app, RequestTrans req)
          Creates a new ResponseTrans object.
 
Method Summary
 void addDateHeader(java.lang.String name, java.util.Date value)
          Proxy to HttpServletResponse.addDateHeader()
 void addHeader(java.lang.String name, java.lang.String value)
          Proxy to HttpServletResponse.addHeader()
 void cacheSkin(java.lang.Object id, Skin skin)
          Cache a skin for the length of this response.
 void close()
          This has to be called after writing to this response has finished and before it is shipped back to the web server.
 void close(java.lang.String cset)
          This has to be called after writing to this response has finished and before it is shipped back to the web server.
 int countCookies()
          Get the number of cookies set in this response.
 void debug(java.lang.Object message)
          Insert string somewhere in the response buffer.
 void dependsOn(java.lang.Object what)
          Add a dependency to this response.
 void digestDependencies()
          Digest all dependencies to a checksum to see if the response has changed.
 void encode(java.lang.Object what)
          Replace special characters with entities, including <, > and ", thus allowing no HTML tags.
 void encodeForm(java.lang.Object what)
          Encode HTML entities, but leave newlines alone.
 void encodeXml(java.lang.Object what)
          Replace special characters with entities, including <, > and ", thus allowing no HTML tags.
 void flush()
           
 void format(java.lang.Object what)
          Replace special characters with entities but pass through HTML tags
 void forward(java.lang.String url)
           
 java.lang.Object get(java.lang.String name)
          Get a value from the responses map by key.
 Skin getActiveSkin()
          Return the skin currently being rendered, or none.
 java.lang.StringBuffer getBuffer()
          Get the response buffer, creating it if it doesn't exist
 Skin getCachedSkin(java.lang.Object id)
          Look up a cached skin.
 java.lang.String getCharset()
          Get the charset/encoding for this response
 byte[] getContent()
          Get the body content for this response as byte array, encoded using the response's charset.
 int getContentLength()
          Get the number of bytes of the response body.
 java.lang.String getContentType()
          Get the response's MIME content type
 CookieTrans[] getCookies()
          Get the cookies set in this response.
 java.lang.StringBuffer getDebugBuffer()
          Get debug messages to append to the response, if any.
 java.lang.Throwable getError()
          Get the error message to display to the user, if any.
 java.lang.String getErrorMessage()
           
 java.lang.String getETag()
          Get the ETag header value for this response.
 java.lang.String getForward()
           
 long getLastModified()
          Get the value of the Last-Modified header for this response.
 java.util.Map getMacroHandlers()
          Get the macro handlers map for this response transmitter.
 java.lang.String getMessage()
          Get the message to display to the user, if any.
 java.util.Map getMetaData()
          Get the meta info map for this response transmitter.
 boolean getNotModified()
          Check if this response should generate a Not-Modified response.
 java.lang.String getRealm()
          Get the HTTP authentication realm
 java.lang.String getRedirect()
           
 java.util.Map getResponseData()
          Get the data map for this response transmitter.
 javax.servlet.http.HttpServletResponse getServletResponse()
          Returns the ServletResponse instance for this ResponseTrans.
 java.lang.Object[] getSkinpath()
          Get the path in which to look for skins.
 int getStatus()
          Get the HTTP response status code
 boolean isCacheable()
          Returns true if this response may be cached by the client
 java.lang.StringBuffer popBuffer()
           
 java.lang.String popString()
          Returns the content of the current string buffer and switches back to the previos one.
 java.lang.StringBuffer pushBuffer(java.lang.StringBuffer buf)
          This is called before a skin is rendered as string (renderSkinAsString) to redirect the output to a new string buffer.
 void redirect(java.lang.String url)
           
 void reportError(java.lang.String errorMessage)
          Write a vanilla error report.
 void reportError(java.lang.Throwable throwable)
          Write a vanilla error report.
 void reset()
          Reset the response object to its initial empty state.
 void resetBuffer()
          Reset the current response buffer.
 void resetCookies()
          Reset all previously set cookies.
 void setCacheable(boolean cache)
          Set the cacheability of this response
 void setCharset(java.lang.String charset)
          Set the charset/encoding for this response
 void setContentType(java.lang.String contentType)
          Set the response's MIME content type
 void setCookie(java.lang.String key, java.lang.String value, int days, java.lang.String path, java.lang.String domain)
          Set a cookie.
 void setDateHeader(java.lang.String name, java.util.Date value)
          Proxy to HttpServletResponse.setDateHeader()
 void setDebugBuffer(java.lang.StringBuffer debugBuffer)
          Set debug messages to append to the response.
 void setError(java.lang.Throwable error)
          Set a message to display to the user.
 void setETag(java.lang.String value)
          Set the ETag header value for this response.
 void setHeader(java.lang.String name, java.lang.String value)
          Proxy to HttpServletResponse.setHeader()
 void setLastModified(long modified)
          Set the Last-Modified header for this response
 void setMessage(java.lang.String message)
          Set a message to display to the user.
 void setRealm(java.lang.String realm)
          Set the HTTP authentication realm
 void setSkinpath(java.lang.Object[] arr)
          Set the path in which to look for skins.
 void setStatus(int status)
          Set the HTTP response status code
 Skin switchActiveSkin(Skin skin)
          Set the skin currently being rendered, returning the previously active skin.
 void waitForClose()
          If we just attached to evaluation we call this instead of close because only the primary thread is responsible for closing the result
 void write(char[] chars)
          Appends a char array to the response buffer.
 void write(char[] chars, int offset, int length)
          Appends a part from a char array to the response buffer.
 void write(int c)
          Appends a signle character to the response buffer.
 void write(java.lang.Object what)
          Appends a objct to the response unchanged.
 void write(java.lang.String str)
          Append a string to the response unchanged.
 void write(java.lang.String str, int offset, int length)
          Appends a part from a string to the response buffer.
 void writeBinary(byte[] what)
          Allow to directly set the byte array for the response.
 void writeln()
          Writes a platform dependent newline sequence to response buffer.
 void writeln(java.lang.Object what)
          Write object to response buffer and append a platform dependent newline sequence.
 void writeXmlRpcError(java.lang.Exception x)
           
 void writeXmlRpcResponse(java.lang.Object result)
           
 
Methods inherited from class java.io.Writer
append, append, append
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ResponseTrans

public ResponseTrans(Application app,
                     RequestTrans req)
Creates a new ResponseTrans object.

Parameters:
req - the RequestTrans for this response
Method Detail

get

public java.lang.Object get(java.lang.String name)
Get a value from the responses map by key.


getResponseData

public java.util.Map getResponseData()
Get the data map for this response transmitter.


getMacroHandlers

public java.util.Map getMacroHandlers()
Get the macro handlers map for this response transmitter.


getMetaData

public java.util.Map getMetaData()
Get the meta info map for this response transmitter.


getServletResponse

public javax.servlet.http.HttpServletResponse getServletResponse()
Returns the ServletResponse instance for this ResponseTrans. Returns null for internal and XML-RPC requests.


resetBuffer

public void resetBuffer()
Reset the current response buffer.


reset

public void reset()
Reset the response object to its initial empty state.


pushBuffer

public java.lang.StringBuffer pushBuffer(java.lang.StringBuffer buf)
This is called before a skin is rendered as string (renderSkinAsString) to redirect the output to a new string buffer.

Parameters:
buf - the StringBuffer to use, or null
Returns:
the new StringBuffer instance

popString

public java.lang.String popString()
Returns the content of the current string buffer and switches back to the previos one.


popBuffer

public java.lang.StringBuffer popBuffer()

getBuffer

public java.lang.StringBuffer getBuffer()
Get the response buffer, creating it if it doesn't exist


write

public void write(java.lang.String str)
Append a string to the response unchanged.

Overrides:
write in class java.io.Writer

write

public void write(java.lang.Object what)
Appends a objct to the response unchanged. The object is first converted to a string.


write

public void write(char[] chars,
                  int offset,
                  int length)
Appends a part from a char array to the response buffer.

Specified by:
write in class java.io.Writer
Parameters:
chars -
offset -
length -

write

public void write(char[] chars)
Appends a char array to the response buffer.

Overrides:
write in class java.io.Writer
Parameters:
chars -

write

public void write(int c)
Appends a signle character to the response buffer.

Overrides:
write in class java.io.Writer
Parameters:
c -

write

public void write(java.lang.String str,
                  int offset,
                  int length)
Appends a part from a string to the response buffer.

Overrides:
write in class java.io.Writer
Parameters:
str -
offset -
length -

writeln

public void writeln(java.lang.Object what)
Write object to response buffer and append a platform dependent newline sequence.


writeln

public void writeln()
Writes a platform dependent newline sequence to response buffer.


debug

public void debug(java.lang.Object message)
Insert string somewhere in the response buffer. Caller has to make sure that buffer exists and its length is larger than offset. str may be null, in which case nothing happens.


encode

public void encode(java.lang.Object what)
Replace special characters with entities, including <, > and ", thus allowing no HTML tags.


format

public void format(java.lang.Object what)
Replace special characters with entities but pass through HTML tags


encodeXml

public void encodeXml(java.lang.Object what)
Replace special characters with entities, including <, > and ", thus allowing no HTML tags.


encodeForm

public void encodeForm(java.lang.Object what)
Encode HTML entities, but leave newlines alone. This is for the content of textarea forms.


redirect

public void redirect(java.lang.String url)
              throws RedirectException
Parameters:
url - ...
Throws:
RedirectException - ...

getRedirect

public java.lang.String getRedirect()
Returns:
...

forward

public void forward(java.lang.String url)
             throws RedirectException
Parameters:
url - ...
Throws:
RedirectException - ...

getForward

public java.lang.String getForward()
Returns:
...

writeBinary

public void writeBinary(byte[] what)
Allow to directly set the byte array for the response. Calling this more than once will overwrite the previous output. We take a generic object as parameter to be able to generate a better error message, but it must be byte[].


addHeader

public void addHeader(java.lang.String name,
                      java.lang.String value)
Proxy to HttpServletResponse.addHeader()

Parameters:
name - the header name
value - the header value

addDateHeader

public void addDateHeader(java.lang.String name,
                          java.util.Date value)
Proxy to HttpServletResponse.addDateHeader()

Parameters:
name - the header name
value - the header value

setHeader

public void setHeader(java.lang.String name,
                      java.lang.String value)
Proxy to HttpServletResponse.setHeader()

Parameters:
name - the header name
value - the header value

setDateHeader

public void setDateHeader(java.lang.String name,
                          java.util.Date value)
Proxy to HttpServletResponse.setDateHeader()

Parameters:
name - the header name
value - the header value

reportError

public void reportError(java.lang.Throwable throwable)
Write a vanilla error report. Callers should make sure the ResponeTrans is new or has been reset.

Parameters:
throwable - the error

reportError

public void reportError(java.lang.String errorMessage)
Write a vanilla error report. Callers should make sure the ResponeTrans is new or has been reset.

Parameters:
errorMessage - the error message

writeXmlRpcResponse

public void writeXmlRpcResponse(java.lang.Object result)

writeXmlRpcError

public void writeXmlRpcError(java.lang.Exception x)

flush

public void flush()
Specified by:
flush in interface java.io.Flushable
Specified by:
flush in class java.io.Writer

close

public void close()
           throws java.io.UnsupportedEncodingException
This has to be called after writing to this response has finished and before it is shipped back to the web server. Transforms the string buffer into a byte array for transmission.

Specified by:
close in interface java.io.Closeable
Specified by:
close in class java.io.Writer
Throws:
java.io.UnsupportedEncodingException

close

public void close(java.lang.String cset)
           throws java.io.UnsupportedEncodingException
This has to be called after writing to this response has finished and before it is shipped back to the web server. Transforms the string buffer into a byte array for transmission.

Throws:
java.io.UnsupportedEncodingException

waitForClose

public void waitForClose()
If we just attached to evaluation we call this instead of close because only the primary thread is responsible for closing the result


getContent

public byte[] getContent()
Get the body content for this response as byte array, encoded using the response's charset.

Returns:
the response body

getContentLength

public int getContentLength()
Get the number of bytes of the response body.

Returns:
the length of the response body

getContentType

public java.lang.String getContentType()
Get the response's MIME content type

Returns:
the MIME type for this response

setContentType

public void setContentType(java.lang.String contentType)
Set the response's MIME content type

Parameters:
contentType - MIME type for this response

setLastModified

public void setLastModified(long modified)
Set the Last-Modified header for this response

Parameters:
modified - the Last-Modified header in milliseconds

getLastModified

public long getLastModified()
Get the value of the Last-Modified header for this response.

Returns:
the Last-Modified header in milliseconds

setETag

public void setETag(java.lang.String value)
Set the ETag header value for this response.

Parameters:
value - the ETag header value

getETag

public java.lang.String getETag()
Get the ETag header value for this response.

Returns:
the ETag header value

getNotModified

public boolean getNotModified()
Check if this response should generate a Not-Modified response.

Returns:
true if the the response wasn't modified since the client last saw it.

dependsOn

public void dependsOn(java.lang.Object what)
Add a dependency to this response.

Parameters:
what - an item this response's output depends on.

digestDependencies

public void digestDependencies()
Digest all dependencies to a checksum to see if the response has changed.


setSkinpath

public void setSkinpath(java.lang.Object[] arr)
Set the path in which to look for skins. This may contain file locations and HopObjects.

Parameters:
arr - the skin path

getSkinpath

public java.lang.Object[] getSkinpath()
Get the path in which to look for skins. This may contain file locations and HopObjects.

Returns:
the skin path

getCachedSkin

public Skin getCachedSkin(java.lang.Object id)
Look up a cached skin.

Parameters:
id - the skin key
Returns:
the skin, or null if no skin is cached for the given key

cacheSkin

public void cacheSkin(java.lang.Object id,
                      Skin skin)
Cache a skin for the length of this response.

Parameters:
id - the skin key
skin - the skin to cache

switchActiveSkin

public Skin switchActiveSkin(Skin skin)
Set the skin currently being rendered, returning the previously active skin.

Parameters:
skin - the new active skin
Returns:
the previously active skin

getActiveSkin

public Skin getActiveSkin()
Return the skin currently being rendered, or none.

Returns:
the currently active skin

setCookie

public void setCookie(java.lang.String key,
                      java.lang.String value,
                      int days,
                      java.lang.String path,
                      java.lang.String domain)
Set a cookie.

Parameters:
key - the cookie key
value - the cookie value
days - the cookie's lifespan in days
path - the URL path to apply the cookie to
domain - the domain to apply the cookie to

resetCookies

public void resetCookies()
Reset all previously set cookies.


countCookies

public int countCookies()
Get the number of cookies set in this response.

Returns:
the number of cookies

getCookies

public CookieTrans[] getCookies()
Get the cookies set in this response.

Returns:
the cookies

getMessage

public java.lang.String getMessage()
Get the message to display to the user, if any.

Returns:
the message

setMessage

public void setMessage(java.lang.String message)
Set a message to display to the user.

Parameters:
message - the message

getError

public java.lang.Throwable getError()
Get the error message to display to the user, if any.

Returns:
the error message

setError

public void setError(java.lang.Throwable error)
Set a message to display to the user.

Parameters:
error - the error message

getErrorMessage

public java.lang.String getErrorMessage()

getDebugBuffer

public java.lang.StringBuffer getDebugBuffer()
Get debug messages to append to the response, if any.

Returns:
the response's debug buffer

setDebugBuffer

public void setDebugBuffer(java.lang.StringBuffer debugBuffer)
Set debug messages to append to the response.

Parameters:
debugBuffer - the response's debug buffer

getCharset

public java.lang.String getCharset()
Get the charset/encoding for this response

Returns:
the charset name

setCharset

public void setCharset(java.lang.String charset)
Set the charset/encoding for this response

Parameters:
charset - the charset name

isCacheable

public boolean isCacheable()
Returns true if this response may be cached by the client

Returns:
true if the response may be cached

setCacheable

public void setCacheable(boolean cache)
Set the cacheability of this response

Parameters:
cache - true if the response may be cached

getStatus

public int getStatus()
Get the HTTP response status code

Returns:
the HTTP response code

setStatus

public void setStatus(int status)
Set the HTTP response status code

Parameters:
status - the HTTP response code

getRealm

public java.lang.String getRealm()
Get the HTTP authentication realm

Returns:
the name of the authentication realm

setRealm

public void setRealm(java.lang.String realm)
Set the HTTP authentication realm

Parameters:
realm - the name of the authentication realm


Copyright © 1998-1998-${year} Helma.org. All Rights Reserved.