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 1341400 2012-05-22 10:57:55Z lu4242 $
Author:
Adam Winer

Field Summary
 
Fields inherited from class java.io.Writer
lock
 
Constructor Summary
StateWriter(Writer initialOut, int initialSize)
           
StateWriter(Writer initialOut, int initialSize, FacesContext facesContext)
           
 
Method Summary
 void close()
           
 void flush()
           
 String getAndResetBuffer()
           
static StateWriter getCurrentInstance()
           
static StateWriter getCurrentInstance(FacesContext facesContext)
           
 boolean isStateWritten()
           
 boolean isStateWrittenWithoutWrapper()
           
 void release()
           
 void release(FacesContext facesContext)
           
 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.
 void writingStateWithoutWrapper()
           
 
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)

StateWriter

public StateWriter(Writer initialOut,
                   int initialSize,
                   FacesContext facesContext)
Method Detail

getCurrentInstance

public static StateWriter getCurrentInstance()

getCurrentInstance

public static StateWriter getCurrentInstance(FacesContext facesContext)

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()

writingStateWithoutWrapper

public void writingStateWithoutWrapper()

isStateWrittenWithoutWrapper

public boolean isStateWrittenWithoutWrapper()

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()

release

public void release(FacesContext facesContext)


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