com.opensymphony.module.sitemesh.filter
Class RoutablePrintWriter

java.lang.Object
  extended by java.io.Writer
      extended by java.io.PrintWriter
          extended by com.opensymphony.module.sitemesh.filter.RoutablePrintWriter
All Implemented Interfaces:
Closeable, Flushable, Appendable

public class RoutablePrintWriter
extends PrintWriter

Provides a PrintWriter that routes through to another PrintWriter, however the destination can be changed at any point. The destination can be passed in using a factory, so it will not be created until it's actually needed.

Version:
$Revision: 1.1 $
Author:
Joe Walnes

Nested Class Summary
static interface RoutablePrintWriter.DestinationFactory
          Factory to lazily instantiate the destination.
private static class RoutablePrintWriter.NullWriter
          Just to keep super constructor for PrintWriter happy - it's never actually used.
 
Field Summary
private  PrintWriter destination
           
private  RoutablePrintWriter.DestinationFactory factory
           
 
Fields inherited from class java.io.PrintWriter
out
 
Fields inherited from class java.io.Writer
lock
 
Constructor Summary
RoutablePrintWriter(RoutablePrintWriter.DestinationFactory factory)
           
 
Method Summary
 boolean checkError()
           
 void close()
           
 void flush()
           
private  PrintWriter getDestination()
           
 void print(boolean b)
           
 void print(char c)
           
 void print(char[] s)
           
 void print(double d)
           
 void print(float f)
           
 void print(int i)
           
 void print(long l)
           
 void print(Object obj)
           
 void print(String s)
           
 void println()
           
 void println(boolean x)
           
 void println(char x)
           
 void println(char[] x)
           
 void println(double x)
           
 void println(float x)
           
 void println(int x)
           
 void println(long x)
           
 void println(Object x)
           
 void println(String x)
           
 void updateDestination(RoutablePrintWriter.DestinationFactory factory)
           
 void write(char[] buf)
           
 void write(char[] buf, int off, int len)
           
 void write(int c)
           
 void write(String s)
           
 void write(String s, int off, int len)
           
 
Methods inherited from class java.io.PrintWriter
append, append, append, clearError, format, format, printf, printf, setError
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

destination

private PrintWriter destination

factory

private RoutablePrintWriter.DestinationFactory factory
Constructor Detail

RoutablePrintWriter

public RoutablePrintWriter(RoutablePrintWriter.DestinationFactory factory)
Method Detail

getDestination

private PrintWriter getDestination()

updateDestination

public void updateDestination(RoutablePrintWriter.DestinationFactory factory)

close

public void close()
Specified by:
close in interface Closeable
Overrides:
close in class PrintWriter

println

public void println(Object x)
Overrides:
println in class PrintWriter

println

public void println(String x)
Overrides:
println in class PrintWriter

println

public void println(char[] x)
Overrides:
println in class PrintWriter

println

public void println(double x)
Overrides:
println in class PrintWriter

println

public void println(float x)
Overrides:
println in class PrintWriter

println

public void println(long x)
Overrides:
println in class PrintWriter

println

public void println(int x)
Overrides:
println in class PrintWriter

println

public void println(char x)
Overrides:
println in class PrintWriter

println

public void println(boolean x)
Overrides:
println in class PrintWriter

println

public void println()
Overrides:
println in class PrintWriter

print

public void print(Object obj)
Overrides:
print in class PrintWriter

print

public void print(String s)
Overrides:
print in class PrintWriter

print

public void print(char[] s)
Overrides:
print in class PrintWriter

print

public void print(double d)
Overrides:
print in class PrintWriter

print

public void print(float f)
Overrides:
print in class PrintWriter

print

public void print(long l)
Overrides:
print in class PrintWriter

print

public void print(int i)
Overrides:
print in class PrintWriter

print

public void print(char c)
Overrides:
print in class PrintWriter

print

public void print(boolean b)
Overrides:
print in class PrintWriter

write

public void write(String s)
Overrides:
write in class PrintWriter

write

public void write(String s,
                  int off,
                  int len)
Overrides:
write in class PrintWriter

write

public void write(char[] buf)
Overrides:
write in class PrintWriter

write

public void write(char[] buf,
                  int off,
                  int len)
Overrides:
write in class PrintWriter

write

public void write(int c)
Overrides:
write in class PrintWriter

checkError

public boolean checkError()
Overrides:
checkError in class PrintWriter

flush

public void flush()
Specified by:
flush in interface Flushable
Overrides:
flush in class PrintWriter

www.opensymphony.com/sitemesh/