Class Xml


  • @Beta
    public class Xml
    extends java.lang.Object
    Beta
    XML utilities.
    Since:
    1.0
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Xml.CustomizeParser
      Customizes the behavior of XML parsing.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static org.xmlpull.v1.XmlPullParserFactory factory
      XML pull parser factory.
      static java.lang.String MEDIA_TYPE
      "application/xml; charset=utf-8" media type used as a default for XML parsing.
      (package private) static java.lang.String TEXT_CONTENT
      Text content.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private Xml()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static org.xmlpull.v1.XmlPullParser createParser()
      Returns a new XML pull parser.
      static org.xmlpull.v1.XmlSerializer createSerializer()
      Returns a new XML serializer.
      private static java.lang.String getFieldName​(boolean isAttribute, java.lang.String alias, java.lang.String namespace, java.lang.String name)  
      private static org.xmlpull.v1.XmlPullParserFactory getParserFactory()  
      private static void parseAttributeOrTextContent​(java.lang.String stringValue, java.lang.reflect.Field field, java.lang.reflect.Type valueType, java.util.List<java.lang.reflect.Type> context, java.lang.Object destination, GenericXml genericXml, java.util.Map<java.lang.String,​java.lang.Object> destinationMap, java.lang.String name)
      Parses the string value of an attribute value or text content.
      static void parseElement​(org.xmlpull.v1.XmlPullParser parser, java.lang.Object destination, XmlNamespaceDictionary namespaceDictionary, Xml.CustomizeParser customizeParser)
      Parses an XML element using the given XML pull parser into the given destination object.
      private static boolean parseElementInternal​(org.xmlpull.v1.XmlPullParser parser, java.util.ArrayList<java.lang.reflect.Type> context, java.lang.Object destination, java.lang.reflect.Type valueType, XmlNamespaceDictionary namespaceDictionary, Xml.CustomizeParser customizeParser)
      Returns whether the customize parser has requested to stop or reached end of document.
      private static void parseNamespacesForElement​(org.xmlpull.v1.XmlPullParser parser, XmlNamespaceDictionary namespaceDictionary)
      Parses the namespaces declared on the current element into the namespace dictionary.
      private static java.lang.Object parseTextContentForElement​(org.xmlpull.v1.XmlPullParser parser, java.util.List<java.lang.reflect.Type> context, boolean ignoreTextContent, java.lang.reflect.Type textContentType)  
      private static java.lang.Object parseValue​(java.lang.reflect.Type valueType, java.util.List<java.lang.reflect.Type> context, java.lang.String value)  
      private static void setValue​(java.lang.Object value, java.lang.reflect.Field field, java.lang.Object destination, GenericXml genericXml, java.util.Map<java.lang.String,​java.lang.Object> destinationMap, java.lang.String name)
      Sets the value of a given field or map entry.
      static java.lang.String toStringOf​(java.lang.Object element)
      Shows a debug string representation of an element data object of key/value pairs.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Xml

        private Xml()
    • Method Detail

      • getParserFactory

        private static org.xmlpull.v1.XmlPullParserFactory getParserFactory()
                                                                     throws org.xmlpull.v1.XmlPullParserException
        Throws:
        org.xmlpull.v1.XmlPullParserException
      • createSerializer

        public static org.xmlpull.v1.XmlSerializer createSerializer()
        Returns a new XML serializer.
        Throws:
        java.lang.IllegalArgumentException - if encountered an XmlPullParserException
      • createParser

        public static org.xmlpull.v1.XmlPullParser createParser()
                                                         throws org.xmlpull.v1.XmlPullParserException
        Returns a new XML pull parser.
        Throws:
        org.xmlpull.v1.XmlPullParserException
      • toStringOf

        public static java.lang.String toStringOf​(java.lang.Object element)
        Shows a debug string representation of an element data object of key/value pairs.

        It will make up something for the element name and XML namespaces. If those are known, it is better to use XmlNamespaceDictionary.toStringOf(String, Object).

        Parameters:
        element - element data object of key/value pairs (GenericXml, Map, or any object with public fields)
      • parseAttributeOrTextContent

        private static void parseAttributeOrTextContent​(java.lang.String stringValue,
                                                        java.lang.reflect.Field field,
                                                        java.lang.reflect.Type valueType,
                                                        java.util.List<java.lang.reflect.Type> context,
                                                        java.lang.Object destination,
                                                        GenericXml genericXml,
                                                        java.util.Map<java.lang.String,​java.lang.Object> destinationMap,
                                                        java.lang.String name)
        Parses the string value of an attribute value or text content.
        Parameters:
        stringValue - string value
        field - field to set or null if not applicable
        valueType - value type (class, parameterized type, or generic array type) or null for none
        context - context list, going from least specific to most specific type context, for example container class and its field
        destination - destination object or null for none
        genericXml - generic XML or null if not applicable
        destinationMap - destination map or null if not applicable
        name - key name
      • setValue

        private static void setValue​(java.lang.Object value,
                                     java.lang.reflect.Field field,
                                     java.lang.Object destination,
                                     GenericXml genericXml,
                                     java.util.Map<java.lang.String,​java.lang.Object> destinationMap,
                                     java.lang.String name)
        Sets the value of a given field or map entry.
        Parameters:
        value - value
        field - field to set or null if not applicable
        destination - destination object or null for none
        genericXml - generic XML or null if not applicable
        destinationMap - destination map or null if not applicable
        name - key name
      • parseElement

        public static void parseElement​(org.xmlpull.v1.XmlPullParser parser,
                                        java.lang.Object destination,
                                        XmlNamespaceDictionary namespaceDictionary,
                                        Xml.CustomizeParser customizeParser)
                                 throws java.io.IOException,
                                        org.xmlpull.v1.XmlPullParserException
        Parses an XML element using the given XML pull parser into the given destination object.

        Requires the the current event be XmlPullParser.START_TAG (skipping any initial XmlPullParser.START_DOCUMENT) of the element being parsed. At normal parsing completion, the current event will either be XmlPullParser.END_TAG of the element being parsed, or the XmlPullParser.START_TAG of the requested atom:entry.

        Parameters:
        parser - XML pull parser
        destination - optional destination object to parser into or null to ignore XML content
        namespaceDictionary - XML namespace dictionary to store unknown namespaces
        customizeParser - optional parser customizer or null for none
        Throws:
        java.io.IOException
        org.xmlpull.v1.XmlPullParserException
      • parseElementInternal

        private static boolean parseElementInternal​(org.xmlpull.v1.XmlPullParser parser,
                                                    java.util.ArrayList<java.lang.reflect.Type> context,
                                                    java.lang.Object destination,
                                                    java.lang.reflect.Type valueType,
                                                    XmlNamespaceDictionary namespaceDictionary,
                                                    Xml.CustomizeParser customizeParser)
                                             throws java.io.IOException,
                                                    org.xmlpull.v1.XmlPullParserException
        Returns whether the customize parser has requested to stop or reached end of document. Otherwise, identical to parseElement(XmlPullParser, Object, XmlNamespaceDictionary, CustomizeParser) .
        Throws:
        java.io.IOException
        org.xmlpull.v1.XmlPullParserException
      • getFieldName

        private static java.lang.String getFieldName​(boolean isAttribute,
                                                     java.lang.String alias,
                                                     java.lang.String namespace,
                                                     java.lang.String name)
      • parseTextContentForElement

        private static java.lang.Object parseTextContentForElement​(org.xmlpull.v1.XmlPullParser parser,
                                                                   java.util.List<java.lang.reflect.Type> context,
                                                                   boolean ignoreTextContent,
                                                                   java.lang.reflect.Type textContentType)
                                                            throws org.xmlpull.v1.XmlPullParserException,
                                                                   java.io.IOException
        Throws:
        org.xmlpull.v1.XmlPullParserException
        java.io.IOException
      • parseValue

        private static java.lang.Object parseValue​(java.lang.reflect.Type valueType,
                                                   java.util.List<java.lang.reflect.Type> context,
                                                   java.lang.String value)
      • parseNamespacesForElement

        private static void parseNamespacesForElement​(org.xmlpull.v1.XmlPullParser parser,
                                                      XmlNamespaceDictionary namespaceDictionary)
                                               throws org.xmlpull.v1.XmlPullParserException
        Parses the namespaces declared on the current element into the namespace dictionary.
        Parameters:
        parser - XML pull parser
        namespaceDictionary - namespace dictionary
        Throws:
        org.xmlpull.v1.XmlPullParserException