Class DocumentContainer

  • All Implemented Interfaces:
    java.io.Serializable, Container, XMLParser

    public class DocumentContainer
    extends XMLParser2
    implements Container
    An XML document container reads and parses XML only when it is accessed. JXPath traverses Containers transparently - you use the same paths to access objects in containers as you do to access those objects directly. You can create XMLDocumentContainers for various XML documents that may or may not be accessed by XPaths. If they are, they will be automatically read, parsed and traversed. If they are not - they won't be read at all.
    Version:
    $Revision: 668329 $ $Date: 2008-06-16 16:59:48 -0500 (Mon, 16 Jun 2008) $
    Author:
    Dmitri Plotnikov
    See Also:
    Serialized Form
    • Field Detail

      • MODEL_JDOM

        public static final java.lang.String MODEL_JDOM
        JDOM constant
        See Also:
        Constant Field Values
      • parserClasses

        private static java.util.HashMap parserClasses
      • parsers

        private static java.util.HashMap parsers
      • document

        private java.lang.Object document
      • xmlURL

        private java.net.URL xmlURL
      • model

        private java.lang.String model
    • Constructor Detail

      • DocumentContainer

        public DocumentContainer​(java.net.URL xmlURL)
        Use this constructor if the desired model is DOM.
        Parameters:
        xmlURL - is a URL for an XML file. Use getClass().getResource(resourceName) to load XML from a resource file.
      • DocumentContainer

        public DocumentContainer​(java.net.URL xmlURL,
                                 java.lang.String model)
        Construct a new DocumentContainer.
        Parameters:
        xmlURL - is a URL for an XML file. Use getClass().getResource (resourceName) to load XML from a resource file.
        model - is one of the MODEL_* constants defined in this class. It determines which parser should be used to load the XML.
    • Method Detail

      • registerXMLParser

        public static void registerXMLParser​(java.lang.String model,
                                             XMLParser parser)
        Add an XML parser. Parsers for the models "DOM" and "JDOM" are pre-registered.
        Parameters:
        model - model name
        parser - parser
      • registerXMLParser

        public static void registerXMLParser​(java.lang.String model,
                                             java.lang.String parserClassName)
        Add a class of a custom XML parser. Parsers for the models "DOM" and "JDOM" are pre-registered.
        Parameters:
        model - model name
        parserClassName - parser classname
      • getValue

        public java.lang.Object getValue()
        Reads XML, caches it internally and returns the Document.
        Specified by:
        getValue in interface Container
        Returns:
        Object
      • parseXML

        public java.lang.Object parseXML​(java.io.InputStream stream)
        Parses XML using the parser for the specified model.
        Specified by:
        parseXML in interface XMLParser
        Specified by:
        parseXML in class XMLParser2
        Parameters:
        stream - InputStream
        Returns:
        Object
      • setValue

        public void setValue​(java.lang.Object value)
        Throws an UnsupportedOperationException.
        Specified by:
        setValue in interface Container
        Parameters:
        value - value (not) to set
      • getParser

        private static XMLParser getParser​(java.lang.String model)
        Maps a model type to a parser.
        Parameters:
        model - input model type
        Returns:
        XMLParser