org.apache.myfaces.view.facelets
Class StateWriter

java.lang.Object
  extended by java.io.Writer
      extended by org.apache.myfaces.view.facelets.StateWriter
All Implemented Interfaces:
Closeable, Flushable, Appendable

public final class StateWriter
extends Writer

A class for handling state insertion. Content is written directly to "out" until an attempt to write state; at that point, it's redirected into a buffer that can be picked through in theory, this buffer should be very small, since it only needs to be enough to contain all the content after the close of the first (and, hopefully, only) form.

Potential optimizations:

Version:
$Id: StateWriter.java,v 1.2 2008/07/13 19:01:40 rlubke Exp $
Author:
Adam Winer

Field Summary
 
Fields inherited from class java.io.Writer
lock
 
Constructor Summary
StateWriter(Writer initialOut, int initialSize)
           
 
Method Summary
 void close()
           
 void flush()
           
 String getAndResetBuffer()
           
static StateWriter getCurrentInstance()
           
 boolean isStateWritten()
           
 void release()
           
 void write(char[] cbuf)
           
 void write(char[] cbuf, int off, int len)
           
 void write(int c)
           
 void write(String str)
           
 void write(String str, int off, int len)
           
 void writingState()
          Mark that state is about to be written.
 
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

StateWriter

public StateWriter(Writer initialOut,
                   int initialSize)
Method Detail

getCurrentInstance

public static StateWriter getCurrentInstance()

writingState

public void writingState()
Mark that state is about to be written. Contrary to what you'd expect, we cannot and should not assume that this location is really going to have state; it is perfectly legit to have a ResponseWriter that filters out content, and ignores an attempt to write out state at this point. So, we have to check after the fact to see if there really are state markers.


isStateWritten

public boolean isStateWritten()

close

public void close()
           throws IOException
Specified by:
close in interface Closeable
Specified by:
close in class Writer
Throws:
IOException

flush

public void flush()
           throws IOException
Specified by:
flush in interface Flushable
Specified by:
flush in class Writer
Throws:
IOException

write

public void write(char[] cbuf,
                  int off,
                  int len)
           throws IOException
Specified by:
write in class Writer
Throws:
IOException

write

public void write(char[] cbuf)
           throws IOException
Overrides:
write in class Writer
Throws:
IOException

write

public void write(int c)
           throws IOException
Overrides:
write in class Writer
Throws:
IOException

write

public void write(String str,
                  int off,
                  int len)
           throws IOException
Overrides:
write in class Writer
Throws:
IOException

write

public void write(String str)
           throws IOException
Overrides:
write in class Writer
Throws:
IOException

getAndResetBuffer

public String getAndResetBuffer()

release

public void release()


Copyright © 2010 The Apache Software Foundation. All Rights Reserved.