|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.google.gdata.util.common.base.CharEscaper
public abstract class CharEscaper
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<Bar>"
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 . |
protected abstract char[] |
escape(char c)
Returns the escaped form of the given character, or null if this
character does not need to be escaped. |
java.lang.String |
escape(java.lang.String string)
Returns the escaped form of a given literal string. |
protected java.lang.String |
escapeSlow(java.lang.String s,
int index)
Returns the escaped form of a given literal string, starting at the given index. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public CharEscaper()
Method Detail |
---|
public java.lang.String escape(java.lang.String string)
escape
in interface Escaper
string
- the literal string to be escaped
string
java.lang.NullPointerException
- if string
is nullpublic java.lang.Appendable escape(java.lang.Appendable out)
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();
escape
in interface Escaper
out
- the underlying Appendable
to append escaped output to
Appendable
which passes text to out
after
escaping it
java.lang.NullPointerException
- if out
is null.protected java.lang.String escapeSlow(java.lang.String s, int index)
escape(String)
method when it
discovers that escaping is required. It is protected to allow subclasses
to override the fastpath escaping function to inline their escaping test.
See CharEscaperBuilder
for an example usage.
s
- the literal string to be escapedindex
- the index to start escaping from
string
java.lang.NullPointerException
- if string
is nullprotected abstract char[] escape(char c)
null
if this
character does not need to be escaped. If an empty array is returned, this
effectively strips the input character from the resulting text.
If the character does not need to be escaped, this method should return
null
, rather than a one-character array containing the character
itself. This enables the escaping algorithm to perform more efficiently.
An escaper is expected to be able to deal with any char
value,
so this method should not throw any exceptions.
c
- the character to escape if necessary
null
if no escaping was
needed
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |