public class XmlFriendlyNameCoder extends java.lang.Object implements NameCoder, java.lang.Cloneable
This NameCoder is designed to ensure the correct encoding and decoding of names used for Java types and fields to XML tags and attribute names.
The default replacements are:
Modifier and Type | Class and Description |
---|---|
private static class |
XmlFriendlyNameCoder.IntPair |
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
dollarReplacement |
private java.util.Map |
escapeCache |
private java.lang.String |
escapeCharReplacement |
private java.lang.String |
hexPrefix |
private java.util.Map |
unescapeCache |
private static XmlFriendlyNameCoder.IntPair[] |
XML_NAME_CHAR_EXTRA_BOUNDS |
private static XmlFriendlyNameCoder.IntPair[] |
XML_NAME_START_CHAR_BOUNDS |
Constructor and Description |
---|
XmlFriendlyNameCoder()
Construct a new XmlFriendlyNameCoder.
|
XmlFriendlyNameCoder(java.lang.String dollarReplacement,
java.lang.String escapeCharReplacement)
Construct a new XmlFriendlyNameCoder with custom replacement strings for dollar and the
escape character.
|
XmlFriendlyNameCoder(java.lang.String dollarReplacement,
java.lang.String escapeCharReplacement,
java.lang.String hexPrefix)
Construct a new XmlFriendlyNameCoder with custom replacement strings for dollar, the
escape character and the prefix for hexadecimal encoding of invalid characters in XML
names.
|
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
clone() |
protected java.util.Map |
createCacheMap() |
java.lang.String |
decodeAttribute(java.lang.String attributeName)
Decode an attribute name to an object name.
|
private java.lang.String |
decodeName(java.lang.String name) |
java.lang.String |
decodeNode(java.lang.String elementName)
Decode a node name to an object name.
|
java.lang.String |
encodeAttribute(java.lang.String name)
Encode a meta-data name for an attribute in the target format.
|
private java.lang.String |
encodeName(java.lang.String name) |
java.lang.String |
encodeNode(java.lang.String name)
Encode an object name for a node in the target format.
|
private static boolean |
isInNameCharBounds(int cp,
XmlFriendlyNameCoder.IntPair[] nameCharBounds) |
private static boolean |
isXmlNameChar(int cp) |
private static boolean |
isXmlNameStartChar(int cp) |
private java.lang.Object |
readResolve() |
private static final XmlFriendlyNameCoder.IntPair[] XML_NAME_START_CHAR_BOUNDS
private static final XmlFriendlyNameCoder.IntPair[] XML_NAME_CHAR_EXTRA_BOUNDS
private final java.lang.String dollarReplacement
private final java.lang.String escapeCharReplacement
private transient java.util.Map escapeCache
private transient java.util.Map unescapeCache
private final java.lang.String hexPrefix
public XmlFriendlyNameCoder()
public XmlFriendlyNameCoder(java.lang.String dollarReplacement, java.lang.String escapeCharReplacement)
dollarReplacement
- escapeCharReplacement
- public XmlFriendlyNameCoder(java.lang.String dollarReplacement, java.lang.String escapeCharReplacement, java.lang.String hexPrefix)
dollarReplacement
- escapeCharReplacement
- public java.lang.String decodeAttribute(java.lang.String attributeName)
decodeAttribute
in interface NameCoder
attributeName
- the name of the attributepublic java.lang.String decodeNode(java.lang.String elementName)
decodeNode
in interface NameCoder
elementName
- the name of the nodepublic java.lang.String encodeAttribute(java.lang.String name)
encodeAttribute
in interface NameCoder
name
- the name of the meta-datapublic java.lang.String encodeNode(java.lang.String name)
encodeNode
in interface NameCoder
name
- the name of the object dataprivate java.lang.String encodeName(java.lang.String name)
private java.lang.String decodeName(java.lang.String name)
public java.lang.Object clone()
clone
in class java.lang.Object
private java.lang.Object readResolve()
protected java.util.Map createCacheMap()
private static boolean isXmlNameStartChar(int cp)
private static boolean isXmlNameChar(int cp)
private static boolean isInNameCharBounds(int cp, XmlFriendlyNameCoder.IntPair[] nameCharBounds)