public class Tag
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
ARRAY_ELEMENT_NAME |
(package private) java.util.Map<java.lang.String,java.lang.String> |
attributes |
(package private) boolean |
cdata |
(package private) java.util.List<java.lang.Object> |
content |
(package private) static java.text.SimpleDateFormat |
format |
(package private) java.lang.String |
name |
(package private) static java.lang.String |
Name |
static java.util.regex.Pattern |
NAME_P |
(package private) static java.lang.String |
NameChar |
(package private) static java.lang.String |
NameStartChar |
(package private) Tag |
parent |
Constructor and Description |
---|
Tag(java.lang.String name,
java.util.Map<java.lang.String,java.lang.String> attributes) |
Tag(java.lang.String name,
java.util.Map<java.lang.String,java.lang.String> attributes,
java.lang.Object... contents) |
Tag(java.lang.String name,
java.util.Map<java.lang.String,java.lang.String> attributes,
java.lang.Object content)
Construct a new Tag with a name.
|
Tag(java.lang.String name,
java.lang.Object... contents) |
Tag(java.lang.String name,
java.lang.Object content)
Construct a new Tag with a name.
|
Tag(java.lang.String name,
java.lang.String[] attributes) |
Tag(java.lang.String name,
java.lang.String[] attributes,
java.lang.Object... contents) |
Tag(java.lang.String name,
java.lang.String[] attributes,
java.lang.Object content)
Construct a new Tag with a name and a set of attributes.
|
Tag(Tag parent,
java.lang.String name,
java.lang.Object... contents) |
Tag(Tag parent,
java.lang.String name,
java.lang.Object content) |
Modifier and Type | Method and Description |
---|---|
Tag |
addAttribute(java.lang.String key,
java.util.Date value)
Add a new date attribute.
|
Tag |
addAttribute(java.lang.String key,
int value)
Add a new attribute.
|
Tag |
addAttribute(java.lang.String key,
java.lang.Object value)
Add a new attribute.
|
Tag |
addAttribute(java.lang.String key,
java.lang.String value)
Add a new attribute.
|
Tag |
addContent(java.util.Map<java.lang.String,?> map)
Add a new content tags.
|
Tag |
addContent(java.lang.String string)
Add a new content string.
|
Tag |
addContent(Tag tag)
Add a new content tag.
|
java.lang.String |
compact() |
private static java.lang.String |
computeArrayElementName(java.lang.String name,
java.lang.String arrayElementName) |
private static Tag |
convertDTO(java.lang.String rootName,
java.lang.String arrayElementName,
java.lang.Object dto,
boolean suffix) |
static java.lang.String |
escape(java.lang.String s)
Escape a string, do entity conversion.
|
java.lang.String |
findRecursiveAttribute(java.lang.String name) |
static Tag |
fromDTO(java.lang.String rootName,
java.lang.Object dto)
Convert the DTO object in arguments to a Tag object with
rootName
as name. |
static Tag |
fromDTO(java.lang.String rootName,
java.lang.String arrayElementName,
java.lang.Object dto)
Convert the DTO object in arguments to a Tag object with
rootName
as name. |
java.lang.String |
getAttribute(java.lang.String key)
Return the attribute value.
|
java.lang.String |
getAttribute(java.lang.String key,
java.lang.String deflt)
Return the attribute value or a default if not defined.
|
java.util.Map<java.lang.String,java.lang.String> |
getAttributes()
Answer the attributes as a Dictionary object.
|
java.util.List<java.lang.Object> |
getContents()
Return the contents.
|
java.util.List<java.lang.Object> |
getContents(java.lang.String tag)
Return only the tags of the first level of descendants that match the
name.
|
java.lang.String |
getContentsAsString()
Return the whole contents as a String (no tag info and attributes).
|
void |
getContentsAsString(java.lang.StringBuilder sb)
convenient method to get the contents in a StringBuilder.
|
private static java.util.stream.Stream<java.lang.reflect.Field> |
getFields(java.lang.Class<?> c) |
java.lang.String |
getLocalName() |
java.lang.String |
getName()
Return the name of the tag.
|
java.lang.String |
getNameSpace() |
java.lang.String |
getNameSpace(java.lang.String name) |
private java.lang.String |
getPath() |
java.lang.String |
getString(java.lang.String path) |
java.lang.String |
getStringContent() |
(package private) boolean |
invalid(java.util.Formatter f) |
private static boolean |
isComplex(java.lang.Object a) |
boolean |
match(java.lang.String search,
Tag child,
Tag mapping) |
Tag |
print(int indent,
java.io.PrintWriter pw)
Print the tag formatted to a PrintWriter.
|
void |
rename(java.lang.String string) |
java.util.Collection<Tag> |
select(java.lang.String path)
root/preferences/native/os
|
(package private) void |
select(java.lang.String path,
java.util.List<Tag> results,
Tag mapping) |
java.util.Collection<Tag> |
select(java.lang.String path,
Tag mapping) |
void |
setCDATA() |
(package private) void |
spaces(java.io.PrintWriter pw,
int n)
Make spaces.
|
java.lang.String |
toString()
Return a string representation of this Tag and all its children
recursively.
|
java.lang.String |
validate() |
private static final java.lang.String ARRAY_ELEMENT_NAME
static final java.lang.String NameStartChar
static final java.lang.String NameChar
static final java.lang.String Name
public static final java.util.regex.Pattern NAME_P
Tag parent
java.lang.String name
final java.util.Map<java.lang.String,java.lang.String> attributes
final java.util.List<java.lang.Object> content
static final java.text.SimpleDateFormat format
boolean cdata
public Tag(java.lang.String name, java.lang.Object content)
public Tag(java.lang.String name, java.lang.Object... contents)
public Tag(Tag parent, java.lang.String name, java.lang.Object... contents)
public Tag(Tag parent, java.lang.String name, java.lang.Object content)
public Tag(java.lang.String name, java.util.Map<java.lang.String,java.lang.String> attributes, java.lang.Object content)
public Tag(java.lang.String name, java.util.Map<java.lang.String,java.lang.String> attributes, java.lang.Object... contents)
public Tag(java.lang.String name, java.util.Map<java.lang.String,java.lang.String> attributes)
public Tag(java.lang.String name, java.lang.String[] attributes, java.lang.Object content)
public Tag(java.lang.String name, java.lang.String[] attributes, java.lang.Object... contents)
public Tag(java.lang.String name, java.lang.String[] attributes)
public Tag addAttribute(java.lang.String key, java.lang.String value)
public Tag addAttribute(java.lang.String key, java.lang.Object value)
public Tag addAttribute(java.lang.String key, int value)
public Tag addAttribute(java.lang.String key, java.util.Date value)
public Tag addContent(java.lang.String string)
public Tag addContent(java.util.Map<java.lang.String,?> map)
public static Tag fromDTO(java.lang.String rootName, java.lang.String arrayElementName, java.lang.Object dto)
rootName
as name.
Keys in Map
and public fields' name are used to name tags.
Objects in Collection
or array
are converted to
XML
elements and tags names are computed as follow:
arrayElementName
will be used.arrayElementName
is
capitalized and appended to the parent element tag name to name the tag
(If the parent element tag name does not end with a lowercase letter,
arrayElementName
is entirely capitalized and an '_' is first
appended to to it)fromDTO("things", "element", `[{"FRIEND": ["Amy"]},{"children": ["Emily"]},["Bob", "Bill"]]`)gives
<things>
<thing>
<FRIEND>
<FRIEND_ELEMENT>Amy</FRIEND_ELEMENT>
</FRIEND>
<children>
<childrenElement>Emily</childrenElement>
</children>
</thing>
<thing>
<element>Bob</element>
<element>Bill</element>
</thing>
</things>
null
values are ignored.
rootName
- the name of the root tag, may be null
.arrayElementName
- a generic name for elements in lists, if
null
or empty, the default value "element" will be
used.dto
- the DTO to convert, if null
an empty element is
returned.null
.public static Tag fromDTO(java.lang.String rootName, java.lang.Object dto)
rootName
as name.
Keys in Map
and public fields' name are used to name tags.
Objects in Collection
or array
are converted to
XML
elements and tags names are computed as follow:
fromDTO("things", "element", `[{"FRIEND": ["Amy"]},{"children": ["Emily"]},["Bob", "Bill"]]`)gives
<things>
<thing>
<FRIEND>
<FRIEND_ELEMENT>Amy</FRIEND_ELEMENT>
</FRIEND>
<children>
<childrenElement>Emily</childrenElement>
</children>
</thing>
<thing>
<element>Bob</element>
<element>Bill</element>
</thing>
</things>
null
values are ignored.
rootName
- the name of the root tag, may be null
.dto
- the DTO to convert, if null
an empty element is
returned.null
.private static Tag convertDTO(java.lang.String rootName, java.lang.String arrayElementName, java.lang.Object dto, boolean suffix)
private static java.lang.String computeArrayElementName(java.lang.String name, java.lang.String arrayElementName)
private static boolean isComplex(java.lang.Object a)
private static java.util.stream.Stream<java.lang.reflect.Field> getFields(java.lang.Class<?> c)
public java.lang.String getName()
public java.lang.String getAttribute(java.lang.String key)
public java.lang.String getAttribute(java.lang.String key, java.lang.String deflt)
public java.util.Map<java.lang.String,java.lang.String> getAttributes()
public java.util.List<java.lang.Object> getContents()
public java.lang.String toString()
toString
in class java.lang.Object
public java.util.List<java.lang.Object> getContents(java.lang.String tag)
public java.lang.String getContentsAsString()
public void getContentsAsString(java.lang.StringBuilder sb)
public Tag print(int indent, java.io.PrintWriter pw)
public static java.lang.String escape(java.lang.String s)
void spaces(java.io.PrintWriter pw, int n)
public java.util.Collection<Tag> select(java.lang.String path)
public java.lang.String getString(java.lang.String path)
public java.lang.String getStringContent()
public java.lang.String getNameSpace()
public java.lang.String getNameSpace(java.lang.String name)
public java.lang.String findRecursiveAttribute(java.lang.String name)
public java.lang.String getLocalName()
public void rename(java.lang.String string)
public void setCDATA()
public java.lang.String compact()
public java.lang.String validate()
boolean invalid(java.util.Formatter f)
private java.lang.String getPath()