com.google.gdata.util.common.base
Class CharEscaper

java.lang.Object
  extended by com.google.gdata.util.common.base.CharEscaper
All Implemented Interfaces:
Escaper

public abstract class CharEscaper
extends java.lang.Object
implements Escaper

An object that converts literal text into a format safe for inclusion in a particular context (such as an XML document). Typically (but not always), the inverse process of "unescaping" the text is performed automatically by the relevant parser.

For example, an XML escaper would convert the literal string "Foo<Bar>" into "Foo&lt;Bar&gt;" to prevent "<Bar>" from being confused with an XML tag. When the resulting XML document is parsed, the parser API will return this text as the original literal string "Foo<Bar>".

A CharEscaper instance is required to be stateless, and safe when used concurrently by multiple threads.

Several popular escapers are defined as constants in the class CharEscapers. To create your own escapers, use CharEscaperBuilder, or extend this class and implement the escape(char) method.


Constructor Summary
CharEscaper()
           
 
Method Summary
 java.lang.Appendable escape(java.lang.Appendable out)
          Returns an Appendable instance which automatically escapes all text appended to it before passing the resulting text to an underlying Appendable.
 java.lang.String escape(java.lang.String string)
          Returns the escaped form of a given literal string.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CharEscaper

public CharEscaper()
Method Detail

escape

public java.lang.String escape(java.lang.String string)
Returns the escaped form of a given literal string.

Specified by:
escape in interface Escaper
Parameters:
string - the literal string to be escaped
Returns:
the escaped form of string
Throws:
java.lang.NullPointerException - if string is null

escape

public java.lang.Appendable escape(java.lang.Appendable out)
Returns an Appendable instance which automatically escapes all text appended to it before passing the resulting text to an underlying Appendable.

The methods of the returned object will propagate any exceptions thrown by the underlying Appendable, and will throw NullPointerException if asked to append null, but do not otherwise throw any exceptions.

The escaping behavior is identical to that of escape(String), so the following code is always equivalent to escaper.escape(string):

   StringBuilder sb = new StringBuilder();
   escaper.escape(sb).append(string);
   return sb.toString();

Specified by:
escape in interface Escaper
Parameters:
out - the underlying Appendable to append escaped output to
Returns:
an Appendable which passes text to out after escaping it
Throws:
java.lang.NullPointerException - if out is null.