Skip navigation links

Oracle® Coherence Java API Reference
Release 12.1.2.0.3

E26043-02


com.tangosol.config.xml
Interface ProcessingContext

All Superinterfaces:
ResourceResolver
All Known Implementing Classes:
DefaultProcessingContext

public interface ProcessingContext
extends ResourceResolver

A ProcessingContext provides contextual information concerning the processing of content in an xml document.

ProcessingContexts additionally provide mechanisms to:

  1. Request processing of other, typically sub xml content, like child XmlElements.
  2. Access the ResourceRegistry provided to the DocumentProcessor associated with the XmlDocument being processed.
  3. Access the ParameterResolver provided to the DocumentProcessor associated with the XmlDocument being processed.
  4. Define additional contextual state (such as cookies) that may be used for injecting values into beans during processing.
  5. Define specialized ElementProcessors and AttributeProcessors that may be used for processing and injecting beans in the ProcessingContext.
Since:
Coherence 12.1.2
Author:
bo 2011.06.15

Method Summary
 void addCookie(java.lang.Class clzCookie, java.lang.String sCookieName, java.lang.Object cookie)
          Adds the specified named and typed cookie to the ProcessingContext.
 void addCookie(java.lang.Class clzCookie, java.lang.Object cookie)
          Adds the specified cookie to the ProcessingContext.
 void definePropertyPath(java.lang.String sBeanPropertyName, java.lang.String sXmlPath)
          Defines the xml path to locate a specific Java Bean property with in an XmlElement in the ProcessingContext.
 NamespaceHandler ensureNamespaceHandler(java.lang.String sPrefix, NamespaceHandler handler)
          Ensures that the specified NamespaceHandler for the specified prefix is defined in this ProcessingContext.
 NamespaceHandler ensureNamespaceHandler(java.lang.String sPrefix, java.net.URI uri)
          Ensures that an NamespaceHandler with the specified URI is available for use in the ProcessingContext with the specified prefix.
 java.lang.ClassLoader getContextClassLoader()
          Obtains the ClassLoader to use for loading classes in the ProcessingContext.
 java.lang.Object getCookie(java.lang.Class clzCookie)
          Locates and returns the cookie with the specified type.
 java.lang.Object getCookie(java.lang.Class clzCookie, java.lang.String sCookieName)
          Locates and returns the cookie with the specified type and name.
 com.tangosol.config.expression.ParameterResolver getDefaultParameterResolver()
          Obtains the ParameterResolver to use for resolving parameters defined externally to the document being processed (ie: the operating system or container)
 com.tangosol.config.expression.ExpressionParser getExpressionParser()
          Obtains the configured ExpressionParser for this ProcessingContext.
 java.lang.Object getMandatoryProperty(java.lang.String sPath, java.lang.reflect.Type typeProperty, XmlElement xmlElement)
          Obtains the strongly typed value for the property defined at the path relative to the specified XmlElement.
 NamespaceHandler getNamespaceHandler(java.lang.String sPrefix)
          Obtains the NamespaceHandler which is capable of processing the namespace with the specified prefix.
 NamespaceHandler getNamespaceHandler(java.net.URI uri)
          Obtains the NamespaceHandler that is capable of processing the namespace defined with the specified URI.
 java.lang.Iterable getNamespaceHandlers()
          Obtains the NamespaceHandlers that are currently in scope for this ProcessingContext.
 java.net.URI getNamespaceURI(java.lang.String sPrefix)
          Obtains the URI that is associated with the specified prefix.
 java.lang.Object getOptionalProperty(java.lang.String sPath, java.lang.reflect.Type typeProperty, java.lang.Object defaultValue, XmlElement xmlElement)
          Obtains the strongly typed value for the property defined at the path relative to the specified XmlElement.
 ResourceRegistry getResourceRegistry()
          Obtains the ResourceRegistry associated with the ProcessingContext.
 java.lang.Object inject(java.lang.Object bean, XmlElement xmlElement)
          Given the information available in the ProcessingContext, including the cookies, the ResourceRegistry the XmlElement, its XmlAttributes and/or children, inject appropriately named and typed values into the specified bean (using setter injection).
 boolean isPropertyDefined(java.lang.String sPath, XmlElement xmlElement)
          Determines if the specified property is defined at the path relative to the specified XmlElement.
 java.lang.Object processDocument(java.lang.String sXml)
          Request that the specified xml string (representing an xml document) be processed with appropriate NamespaceHandlers.
 java.lang.Object processDocument(XmlElement xmlElement)
          Request that the specified XmlElement (representing the root of an XmlDocument) be processed with appropriate NamespaceHandlers.
 java.lang.Object processDocumentAt(java.lang.String sLocation)
          Request that the document specified by the URI/filename (containing the root of an XmlDocument) be processed with appropriate NamespaceHandlers.
 java.lang.Object processDocumentAt(java.net.URI uri)
          Request that the document specified by the URI/filename (containing the root of an XmlDocument) be processed with appropriate NamespaceHandlers.
 java.lang.Object processElement(java.lang.String sXml)
          Request the specified xml string be processed with an appropriate NamespaceHandler known by the ProcessingContext.
 java.lang.Object processElement(XmlElement xmlElement)
          Request the specified XmlElement to be processed with an appropriate NamespaceHandler known by the ProcessingContext or outer ProcessingContexts.
 java.util.Map processElementsOf(XmlElement xmlElement)
          Request that all of the child elements contained with in the specified XmlElement be processed using appropriate NamespaceHandlers known by the ProcessingContext.
 java.util.Map processForeignElementsOf(XmlElement xmlElement)
          Request that all of the child elements contained within the specified XmlElement that do not belong to the namespace of the said XmlElement are processed using appropriate processes.
 java.lang.Object processOnlyElementOf(XmlElement xmlElement)
          Request that the only child element contained within the XmlElement is processed using an appropriate NamespaceHandler known by the ProcessingContext.
 java.lang.Object processRemainingElementOf(XmlElement xmlElement)
          Request that the last remaining unprocessed child element contained within the specified XmlElement is processed using an appropriate ElementProcessor.
 java.util.Map processRemainingElementsOf(XmlElement xmlElement)
          Request that the last remaining unprocessed children contained within the specified XmlElement are processed using appropriate ElementProcessors.
 void registerAttributeType(java.lang.Class clzType)
          Automatically creates and registers an AttributeProcessor for the specified type.
 void registerElementType(java.lang.Class clzType)
          Automatically creates and registers an ElementProcessor for the specified type.
 void registerProcessor(java.lang.Class clzType, AttributeProcessor processor)
          Registers an AttributeProcessor that may be used to process specific types of values contained in XmlAttributes with in the ProcessingContext.
 void registerProcessor(java.lang.Class clzType, ElementProcessor processor)
          Registers an ElementProcessor that may be used to process specific types of values contained in XmlElements with in the ProcessingContext.

 

Methods inherited from interface com.tangosol.util.ResourceResolver
getResource, getResource

 

Method Detail

getResourceRegistry

ResourceRegistry getResourceRegistry()
Obtains the ResourceRegistry associated with the ProcessingContext.
Returns:
a ResourceRegistry

getContextClassLoader

java.lang.ClassLoader getContextClassLoader()
Obtains the ClassLoader to use for loading classes in the ProcessingContext.
Returns:
ClassLoader

getDefaultParameterResolver

com.tangosol.config.expression.ParameterResolver getDefaultParameterResolver()
Obtains the ParameterResolver to use for resolving parameters defined externally to the document being processed (ie: the operating system or container)
Returns:
the default ParameterResolver.

addCookie

void addCookie(java.lang.Class clzCookie,
               java.lang.String sCookieName,
               java.lang.Object cookie)
Adds the specified named and typed cookie to the ProcessingContext.

If a cookie with the same name and type exists in the ProcessingContext, it will be replaced by the specified cookie. If a cookie with the same name and type has been defined in an outer ProcessingContext, the specified cookie will hide the cookie defined in the outer ProcessingContext.

Parameters:
clzCookie - the class of the cookie
sCookieName - the name of the cookie
cookie - the cookie value

addCookie

void addCookie(java.lang.Class clzCookie,
               java.lang.Object cookie)
Adds the specified cookie to the ProcessingContext.

If a cookie of the same type and name (being the name of the class of the said cookie) is already registered with the ProcessingContext, it will be replaced by the specified cookie.

If a cookie of the same type and name has been defined in an outer ProcessingContext, the specified cookie will hide the cookie defined in the outer ProcessingContext.

This method is equivalent to calling: addCookie(clz, clz.getName(), cookie);

Parameters:
clzCookie - the class of the cookie
cookie - the cookie value

getCookie

java.lang.Object getCookie(java.lang.Class clzCookie,
                           java.lang.String sCookieName)
Locates and returns the cookie with the specified type and name.

Locating the cookie involves searching the current ProcessingContext for a matching cookie. If one is not found, the search continues with outer ProcessingContexts until a cookie is either located or there are no more ProcessingContexts, in which case null is returned.

Parameters:
clzCookie - the class of the cookie
sCookieName - the name of the cookie
Returns:
the cookie or null if not defined

getCookie

java.lang.Object getCookie(java.lang.Class clzCookie)
Locates and returns the cookie with the specified type.

Locating the cookie involves searching the current ProcessingContext for a matching cookie. If one is not found, the search continues with outer ProcessingContexts until a cookie is either located or there are no more ProcessingContexts, in which case null is returned.

This method is equivalent to calling: getCookie(clz, clz.getName());

Parameters:
clzCookie - the class of the cookie
Returns:
the cookie or null if not defined

definePropertyPath

void definePropertyPath(java.lang.String sBeanPropertyName,
                        java.lang.String sXmlPath)
Defines the xml path to locate a specific Java Bean property with in an XmlElement in the ProcessingContext.

This method allows "alias" paths for Java Bean properties to be defined so that inject(Object, XmlElement) calls may resolve property values correctly.

This is an advanced feature. Typically this is only used when:

  1. A Java Bean property name does not match a named value, XmlElement or XmlAttribute with in a ProcessingContext.
  2. A Java Bean property can not be located with in the ProcessingContext.
    Parameters:
    sBeanPropertyName - the property name of the bean
    sXmlPath - the xmlPath to the property value

    registerProcessor

    void registerProcessor(java.lang.Class clzType,
                           AttributeProcessor processor)
    
    Registers an AttributeProcessor that may be used to process specific types of values contained in XmlAttributes with in the ProcessingContext.

    When an AttributeProcessor isn't provided by the associated NamespaceHandler for an XmlAttribute, an attempt is made to use a type specific AttributeProcessor to process an XmlAttribute for injection (with inject(Object, XmlElement)).

    Parameters:
    clzType - the Class type
    processor - the AttributeProcessor for the type

    registerProcessor

    void registerProcessor(java.lang.Class clzType,
                           ElementProcessor processor)
    
    Registers an ElementProcessor that may be used to process specific types of values contained in XmlElements with in the ProcessingContext.

    When an ElementProcessor isn't provided by the associated NamespaceHandler for an XmlElement, an attempt is made to use a type specific ElementProcessor to process an XmlElement for injection (with inject(Object, XmlElement)).

    Parameters:
    clzType - the Class type
    processor - the ElementProcessor for the type

    registerAttributeType

    void registerAttributeType(java.lang.Class clzType)
    
    Automatically creates and registers an AttributeProcessor for the specified type.

    Note: This assumes the type supports a String-based or XmlAttribute-based constructor.

    Parameters:
    clzType - the type for which to create and register an AttributeProcessor

    registerElementType

    void registerElementType(java.lang.Class clzType)
    
    Automatically creates and registers an ElementProcessor for the specified type.

    Note: This assumes the type supports a String-based or XmlElement-based constructor.

    Parameters:
    clzType - the type for which to create and register an ElementProcessor

    getExpressionParser

    com.tangosol.config.expression.ExpressionParser getExpressionParser()
    
    Obtains the configured ExpressionParser for this ProcessingContext.
    Returns:
    the ExpressionParser

    ensureNamespaceHandler

    NamespaceHandler ensureNamespaceHandler(java.lang.String sPrefix,
                                            java.net.URI uri)
    
    Ensures that an NamespaceHandler with the specified URI is available for use in the ProcessingContext with the specified prefix. If a NamespaceHandler with the specified prefix and URI is not defined by the ProcessingContext, one is instantiated, registered and returned.
    Parameters:
    sPrefix - the prefix of the Xml Namespace to use for the NamespaceHandler
    uri - the URI detailing the location of the NamespaceHandler. Typically this will be a java class URI, specified as "class://fully.qualified.class.name"
    Returns:
    an instance of the NamespaceHandler that is suitable for processing the prefix and URI
    Throws:
    ConfigurationException - when a configuration problem was encountered

    ensureNamespaceHandler

    NamespaceHandler ensureNamespaceHandler(java.lang.String sPrefix,
                                            NamespaceHandler handler)
    
    Ensures that the specified NamespaceHandler for the specified prefix is defined in this ProcessingContext.

    If a NamespaceHandler for the prefix does not exist in the ProcessingContext, it is added. Otherwise the existing NamespaceHandler for the prefix is returned.

    Parameters:
    sPrefix - the prefix of the xml Namespace to be associated with the NamespaceHandler
    handler - the NamespaceHandler
    Returns:
    the registered NamespaceHandler for the ProcessingContext

    getNamespaceHandler

    NamespaceHandler getNamespaceHandler(java.net.URI uri)
    
    Obtains the NamespaceHandler that is capable of processing the namespace defined with the specified URI.
    Parameters:
    uri - the Xml Namespace URI of the NamespaceHandler to locate
    Returns:
    null if a NamespaceHandler could not be located for the specified URI

    getNamespaceHandler

    NamespaceHandler getNamespaceHandler(java.lang.String sPrefix)
    
    Obtains the NamespaceHandler which is capable of processing the namespace with the specified prefix.
    Parameters:
    sPrefix - the prefix of the xml namespace
    Returns:
    null if a NamespaceHandler could not be located for the specified prefix

    getNamespaceURI

    java.net.URI getNamespaceURI(java.lang.String sPrefix)
    
    Obtains the URI that is associated with the specified prefix.
    Parameters:
    sPrefix - the XML namespace prefix of the URI to locate
    Returns:
    null if a URI could not be located for the specified URI

    getNamespaceHandlers

    java.lang.Iterable getNamespaceHandlers()
    
    Obtains the NamespaceHandlers that are currently in scope for this ProcessingContext.
    Returns:
    An Iterable over the NamespaceHandlers in scope.

    processDocumentAt

    java.lang.Object processDocumentAt(java.net.URI uri)
                                       throws ConfigurationException
    
    Request that the document specified by the URI/filename (containing the root of an XmlDocument) be processed with appropriate NamespaceHandlers.

    Should the document root contain any unrecognized xml namespaces, an attempt will be made to load appropriate NamespaceHandlers that of which will be used to process said elements in the document.

    Parameters:
    uri - the URI of the XmlDocument to process
    Returns:
    the result of the processing the root element of the document
    Throws:
    ConfigurationException - when a configuration problem was encountered

    processDocumentAt

    java.lang.Object processDocumentAt(java.lang.String sLocation)
                                       throws ConfigurationException
    
    Request that the document specified by the URI/filename (containing the root of an XmlDocument) be processed with appropriate NamespaceHandlers.

    Should the document root contain any unrecognized xml namespaces, an attempt will be made to load appropriate NamespaceHandlers that of which will be used to process said elements in the document.

    Parameters:
    sLocation - the URI/filename of the XmlDocument to process
    Returns:
    the result of the processing the root element of the document
    Throws:
    ConfigurationException - when a configuration problem was encountered

    processDocument

    java.lang.Object processDocument(XmlElement xmlElement)
                                     throws ConfigurationException
    
    Request that the specified XmlElement (representing the root of an XmlDocument) be processed with appropriate NamespaceHandlers.

    Should the document root contain any unrecognized xml namespaces, an attempt will be made to load appropriate NamespaceHandlers that of which will be used to process said elements in the document.

    Parameters:
    xmlElement - the root XmlElement of the XmlDocument to process
    Returns:
    the result of the processing the root element of the document represented by the XmlElement
    Throws:
    ConfigurationException - when a configuration problem was encountered

    processDocument

    java.lang.Object processDocument(java.lang.String sXml)
                                     throws ConfigurationException
    
    Request that the specified xml string (representing an xml document) be processed with appropriate NamespaceHandlers.

    Should the document root contain any unrecognized xml namespaces, an attempt will be made to load appropriate NamespaceHandlers that of which will be used to process said elements in the document.

    Parameters:
    sXml - a string containing an xml document to process
    Returns:
    the result of processing the root element of the document
    Throws:
    ConfigurationException - when a configuration problem was encountered

    processElement

    java.lang.Object processElement(XmlElement xmlElement)
                                    throws ConfigurationException
    
    Request the specified XmlElement to be processed with an appropriate NamespaceHandler known by the ProcessingContext or outer ProcessingContexts.

    Note: Should the element contain any unrecognized xml namespaces, an attempt will be made to load appropriate NamespaceHandlers that of which will be used to process said elements.

    Parameters:
    xmlElement - the XmlElement to process
    Returns:
    the result of processing the XmlElement with an appropriate ElementProcessor
    Throws:
    ConfigurationException - when a configuration problem was encountered

    processElement

    java.lang.Object processElement(java.lang.String sXml)
                                    throws ConfigurationException
    
    Request the specified xml string be processed with an appropriate NamespaceHandler known by the ProcessingContext.

    Note: Should the element contain any unrecognized xml namespaces, an attempt will be made to load appropriate NamespaceHandlers that of which will be used to process said elements.

    Parameters:
    sXml - the xml to process
    Returns:
    the result of processing the root element of the specified xml
    Throws:
    ConfigurationException - when a configuration problem was encountered

    processElementsOf

    java.util.Map processElementsOf(XmlElement xmlElement)
                                    throws ConfigurationException
    
    Request that all of the child elements contained with in the specified XmlElement be processed using appropriate NamespaceHandlers known by the ProcessingContext.

    This is a convenience method to aid in the processing of all children of an XmlElement. The keys of the returned Map represent the id attributes each child XmlElement. If an XmlElement does not have a specified id attribute, a UUID is generated in it's place.

    Parameters:
    xmlElement - the parent XmlElement of the children to process
    Returns:
    a Map from identifiable child XmlElements (with id="O___" attributes) and their corresponding processed values
    Throws:
    ConfigurationException - when a configuration problem was encountered

    processForeignElementsOf

    java.util.Map processForeignElementsOf(XmlElement xmlElement)
                                           throws ConfigurationException
    
    Request that all of the child elements contained within the specified XmlElement that do not belong to the namespace of the said XmlElement are processed using appropriate processes.

    This is a convenience method to aid in the processing of all children of an XmlElement. The keys of the returned Map represent the id attributes each child XmlElement. If an XmlElement does not have a specified id attribute, a UUID is generated in it's place.

    Parameters:
    xmlElement - the parent XmlElement of the children to process
    Returns:
    a Map from identifiable child XmlElements (with attributes) and their corresponding processed values
    Throws:
    ConfigurationException - when a configuration problem was encountered

    processOnlyElementOf

    java.lang.Object processOnlyElementOf(XmlElement xmlElement)
                                          throws ConfigurationException
    
    Request that the only child element contained within the XmlElement is processed using an appropriate NamespaceHandler known by the ProcessingContext.
    Parameters:
    xmlElement - the XmlElement in which the child is defined
    Returns:
    the result of processing the child element
    Throws:
    ConfigurationException - when a configuration problem was encountered, especially if there is zero or more than one child

    processRemainingElementOf

    java.lang.Object processRemainingElementOf(XmlElement xmlElement)
                                               throws ConfigurationException
    
    Request that the last remaining unprocessed child element contained within the specified XmlElement is processed using an appropriate ElementProcessor.

    This is a convenience method to aid in the processing of an unprocessed child XmlElement of an element.

    Parameters:
    xmlElement - the parent XmlElement of the unprocessed child to process
    Returns:
    the result of processing the child element
    Throws:
    ConfigurationException - if there are zero or more than one unprocessed child in the element, or if some other ConfigurationException occurred

    processRemainingElementsOf

    java.util.Map processRemainingElementsOf(XmlElement xmlElement)
                                             throws ConfigurationException
    
    Request that the last remaining unprocessed children contained within the specified XmlElement are processed using appropriate ElementProcessors.

    This is a convenience method to aid in the processing of an unprocessed child XmlElements of an element. The keys of the returned Map represent the id attributes each child XmlElement. If an XmlElement does not have a specified id attribute, a UUID is generated in it's place.

    Parameters:
    xmlElement - the parent XmlElement of the unprocessed children to process
    Returns:
    a Map from identifiable child XmlElements (with attributes) and their corresponding processed values
    Throws:
    ConfigurationException - when a configuration problem was encountered

    inject

    java.lang.Object inject(java.lang.Object bean,
                            XmlElement xmlElement)
                            throws ConfigurationException
    
    Given the information available in the ProcessingContext, including the cookies, the ResourceRegistry the XmlElement, its XmlAttributes and/or children, inject appropriately named and typed values into the specified bean (using setter injection).

    The order in which values are located for injection is as follows; attributed defined by the element, child elements defined by the element, alternative paths to values defined in the ProcessingContext, cookies defined by the ProcessingContext and finally the ResourceRegistry associated with the ProcessingContext.

    Parameters:
    bean - the bean to be injected
    xmlElement - the XmlElement from which values will be derived for injection into the bean
    Returns:
    the provided bean but with properties set based on the available values in the ProcessingContext
    Throws:
    ConfigurationException - if a configuration is not valid

    isPropertyDefined

    boolean isPropertyDefined(java.lang.String sPath,
                              XmlElement xmlElement)
                              throws ConfigurationException
    
    Determines if the specified property is defined at the path relative to the specified XmlElement.
    Parameters:
    sPath - the path to the property
    xmlElement - the XmlElement in which the property should be searched
    Returns:
    true if the property is defined, false otherwise
    Throws:
    ConfigurationException - if a configuration is not valid

    getMandatoryProperty

    java.lang.Object getMandatoryProperty(java.lang.String sPath,
                                          java.lang.reflect.Type typeProperty,
                                          XmlElement xmlElement)
                                          throws ConfigurationException
    
    Obtains the strongly typed value for the property defined at the path relative to the specified XmlElement. If the property is not defined or is of the incorrect type, a ConfigurationException is thrown.
    Parameters:
    sPath - the path to the property
    typeProperty - the type of the property
    xmlElement - the XmlElement containing the properties for the object
    Returns:
    the property value
    Throws:
    ConfigurationException - if a configuration is not valid, the property can't be located or is of the wrong type

    getOptionalProperty

    java.lang.Object getOptionalProperty(java.lang.String sPath,
                                         java.lang.reflect.Type typeProperty,
                                         java.lang.Object defaultValue,
                                         XmlElement xmlElement)
                                         throws ConfigurationException
    
    Obtains the strongly typed value for the property defined at the path relative to the specified XmlElement. If the property is not defined, the defaultValue is returned.
    Parameters:
    sPath - the path to the property
    typeProperty - the type of the property
    defaultValue - the value to return if the property is not found
    xmlElement - the XmlElement containing the properties for the object
    Returns:
    the property value
    Throws:
    ConfigurationException - if a configuration is not valid

    Oracle® Coherence Java API Reference
    Release 12.1.2.0.3

    E26043-02

    Copyright © 2000, 2014, Oracle and/or its affiliates. All rights reserved.