Class DefaultProcessingContext
- java.lang.Object
-
- com.tangosol.config.xml.DefaultProcessingContext
-
- All Implemented Interfaces:
ProcessingContext
,ResourceResolver
,AutoCloseable
public class DefaultProcessingContext extends Object implements ProcessingContext, AutoCloseable
The default implementation of aProcessingContext
.- Since:
- Coherence 12.1.2
- Author:
- bo 2011.06.14
-
-
Constructor Summary
Constructors Constructor Description DefaultProcessingContext()
DefaultProcessingContext(DefaultProcessingContext ctxParent, XmlElement xmlElement)
Constructs a sub-ProcessingContext
of anotherProcessingContext
.DefaultProcessingContext(DocumentProcessor.Dependencies dependencies)
Constructs a rootProcessingContext
with the specifiedDocumentProcessor
DocumentProcessor.Dependencies
.DefaultProcessingContext(DocumentProcessor.Dependencies dependencies, XmlElement xmlElement)
Constructs a rootProcessingContext
for a givenXmlElement
.DefaultProcessingContext(XmlElement xmlElement)
Constructs a rootProcessingContext
for a givenXmlElement
using default DocumentProcessor dependencies.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> void
addCookie(Class<T> clzCookie, String sName, T value)
Adds the specified named and typed cookie to theProcessingContext
.<T> void
addCookie(Class<T> clzCookie, T cookie)
Adds the specified cookie to theProcessingContext
.void
close()
void
definePropertyPath(String sBeanPropertyName, String sXmlPath)
Defines the xml path to locate a specific Java Bean property with in anXmlElement
in theProcessingContext
.NamespaceHandler
ensureNamespaceHandler(String sPrefix, NamespaceHandler handler)
Ensures that the specifiedNamespaceHandler
for the specified prefix is defined in thisProcessingContext
.NamespaceHandler
ensureNamespaceHandler(String sPrefix, URI uri)
Ensures that anNamespaceHandler
with the specifiedURI
is available for use in theProcessingContext
with the specified prefix.ClassLoader
getContextClassLoader()
Obtains theClassLoader
to use for loading classes in theProcessingContext
.<T> T
getCookie(Class<T> clzCookie)
Locates and returns the cookie with the specified type.<T> T
getCookie(Class<T> clzCookie, String sName)
Locates and returns the cookie with the specified type and name.ParameterResolver
getDefaultParameterResolver()
Obtains theParameterResolver
to use for resolving parameters defined externally to the document being processed (ie: the operating system or container)DocumentProcessor.Dependencies
getDependencies()
ExpressionParser
getExpressionParser()
Obtains the configuredExpressionParser
for thisProcessingContext
.<T> T
getMandatoryProperty(String sPath, Type typeProperty, XmlElement xmlParent)
Obtains the strongly typed value for the property defined at the path relative to the specifiedXmlElement
.NamespaceHandler
getNamespaceHandler(String sPrefix)
Obtains theNamespaceHandler
which is capable of processing the namespace with the specified prefix.NamespaceHandler
getNamespaceHandler(URI uri)
Obtains theNamespaceHandler
that is capable of processing the namespace defined with the specifiedURI
.Iterable<NamespaceHandler>
getNamespaceHandlers()
Obtains theNamespaceHandler
s that are currently in scope for thisProcessingContext
.URI
getNamespaceURI(String sPrefix)
Obtains theURI
that is associated with the specified prefix.<T> T
getOptionalProperty(String sPropertyName, Type typeProperty, T defaultValue, XmlElement xmlElement)
Obtains the strongly typed value for the property defined at the path relative to the specifiedXmlElement
.Value
getPropertyValue(String sPropertyName, Type typeProperty, XmlElement xmlParent, boolean fOnlyUsePropertyName)
Attempts to resolve the named property of the specified type in the current context and if required will parse the specifiedXmlElement
in order to do so.<R> R
getResource(Class<R> clsResource)
Attempts to retrieve the resource that was registered with the specified class.<R> R
getResource(Class<R> clsResource, String sResourceName)
Attempts to retrieve the resource that was registered with the specified class and name.ResourceRegistry
getResourceRegistry()
Obtains theResourceRegistry
associated with theProcessingContext
.<B> B
inject(B bean, XmlElement xmlElement)
Given the information available in theProcessingContext
, including the cookies, theResourceRegistry
theXmlElement
, itsXmlAttribute
s and/or children, inject appropriately named and typed values into the specified bean (using setter injection).boolean
isPropertyDefined(String sPropertyName, XmlElement xmlParent)
Determines if the specified property is defined at the path relative to the specifiedXmlElement
.boolean
isRootContext()
Determines if theProcessingContext
is the root.void
loadNamespaceHandlers(XmlElement xmlElement)
Load all the customNamespaceHandler
instances for the specifiedXmlElement
.Object
processDocument(XmlElement xmlElement)
Request that the specifiedXmlElement
(representing the root of an XmlDocument) be processed with appropriateNamespaceHandler
s.Object
processDocument(String sXml)
Request that the specified xml string (representing an xml document) be processed with appropriateNamespaceHandler
s.Object
processDocumentAt(String sLocation)
Request that the document specified by the URI/filename (containing the root of an XmlDocument) be processed with appropriateNamespaceHandler
s.Object
processDocumentAt(URI uri)
Request that the document specified by the URI/filename (containing the root of an XmlDocument) be processed with appropriateNamespaceHandler
s.Object
processElement(XmlElement xmlElement)
Request the specifiedXmlElement
to be processed with an appropriateNamespaceHandler
known by theProcessingContext
or outerProcessingContext
s.Object
processElement(String sXml)
Request the specified xml string be processed with an appropriateNamespaceHandler
known by theProcessingContext
.Map<String,?>
processElementsOf(XmlElement xmlElement)
Request that all of the child elements contained with in the specifiedXmlElement
be processed using appropriateNamespaceHandler
s known by theProcessingContext
.Map<String,?>
processForeignElementsOf(XmlElement xmlElement)
Request that all of the child elements contained within the specifiedXmlElement
that do not belong to the namespace of the saidXmlElement
are processed using appropriate processes.<T> T
processOnlyElementOf(XmlElement xmlElement)
Request that the only child element contained within theXmlElement
is processed using an appropriateNamespaceHandler
known by theProcessingContext
.<T> T
processRemainingElementOf(XmlElement xmlElement)
Request that the last remaining unprocessed child element contained within the specifiedXmlElement
is processed using an appropriateElementProcessor
.Map<String,?>
processRemainingElementsOf(XmlElement xmlElement)
Request that the last remaining unprocessed children contained within the specifiedXmlElement
are processed using appropriateElementProcessor
s.<T> void
registerAttributeType(Class<T> clzType)
Automatically creates and registers anAttributeProcessor
for the specified type.<T> void
registerElementType(Class<T> clzType)
Automatically creates and registers anElementProcessor
for the specified type.<T> void
registerProcessor(Class<T> clzType, AttributeProcessor<T> processor)
Registers anAttributeProcessor
that may be used to process specific types of values contained inXmlAttribute
s with in theProcessingContext
.<T> void
registerProcessor(Class<T> clzType, ElementProcessor<T> processor)
Registers anElementProcessor
that may be used to process specific types of values contained inXmlElement
s with in theProcessingContext
.
-
-
-
Constructor Detail
-
DefaultProcessingContext
public DefaultProcessingContext()
-
DefaultProcessingContext
public DefaultProcessingContext(DocumentProcessor.Dependencies dependencies)
Constructs a rootProcessingContext
with the specifiedDocumentProcessor
DocumentProcessor.Dependencies
.- Parameters:
dependencies
- theDocumentProcessor.Dependencies
for theProcessingContext
-
DefaultProcessingContext
public DefaultProcessingContext(XmlElement xmlElement)
Constructs a rootProcessingContext
for a givenXmlElement
using default DocumentProcessor dependencies.- Parameters:
xmlElement
- theXmlElement
for theProcessingContext
-
DefaultProcessingContext
public DefaultProcessingContext(DefaultProcessingContext ctxParent, XmlElement xmlElement)
Constructs a sub-ProcessingContext
of anotherProcessingContext
.- Parameters:
ctxParent
- the parentProcessingContext
for thisProcessingContext
xmlElement
- theXmlElement
for the sub-ProcessingContext
-
DefaultProcessingContext
public DefaultProcessingContext(DocumentProcessor.Dependencies dependencies, XmlElement xmlElement)
Constructs a rootProcessingContext
for a givenXmlElement
.- Parameters:
dependencies
- theDocumentProcessor.Dependencies
for theProcessingContext
xmlElement
- theXmlElement
for theProcessingContext
-
-
Method Detail
-
getResource
public <R> R getResource(Class<R> clsResource)
Attempts to retrieve the resource that was registered with the specified class.- Specified by:
getResource
in interfaceResourceResolver
- Type Parameters:
R
- the type of the resource- Parameters:
clsResource
- the class of the resource- Returns:
- the registered resource or
null
if the resource is unknown to theResourceRegistry
-
getResource
public <R> R getResource(Class<R> clsResource, String sResourceName)
Attempts to retrieve the resource that was registered with the specified class and name.- Specified by:
getResource
in interfaceResourceResolver
- Type Parameters:
R
- the type of the resource- Parameters:
clsResource
- the class of the resourcesResourceName
- the name of the resource- Returns:
- the registered resource or
null
if the resource is unknown to theResourceRegistry
-
getResourceRegistry
public ResourceRegistry getResourceRegistry()
Obtains theResourceRegistry
associated with theProcessingContext
.- Specified by:
getResourceRegistry
in interfaceProcessingContext
- Returns:
- a
ResourceRegistry
-
getDefaultParameterResolver
public ParameterResolver getDefaultParameterResolver()
Obtains theParameterResolver
to use for resolving parameters defined externally to the document being processed (ie: the operating system or container)- Specified by:
getDefaultParameterResolver
in interfaceProcessingContext
- Returns:
- the default
ParameterResolver
.
-
getContextClassLoader
public ClassLoader getContextClassLoader()
Obtains theClassLoader
to use for loading classes in theProcessingContext
.- Specified by:
getContextClassLoader
in interfaceProcessingContext
- Returns:
ClassLoader
-
addCookie
public <T> void addCookie(Class<T> clzCookie, String sName, T value)
Adds the specified named and typed cookie to theProcessingContext
.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 outerProcessingContext
, the specified cookie will hide the cookie defined in the outerProcessingContext
.- Specified by:
addCookie
in interfaceProcessingContext
- Type Parameters:
T
- the type of the cookie- Parameters:
clzCookie
- the class of the cookiesName
- the name of the cookievalue
- the cookie value
-
addCookie
public <T> void addCookie(Class<T> clzCookie, T cookie)
Adds the specified cookie to theProcessingContext
.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 outerProcessingContext
.This method is equivalent to calling:
addCookie(clz, clz.getName(), cookie);
- Specified by:
addCookie
in interfaceProcessingContext
- Type Parameters:
T
- the type of the cookie- Parameters:
clzCookie
- the class of the cookiecookie
- the cookie value
-
getCookie
public <T> T getCookie(Class<T> clzCookie, String sName)
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 outerProcessingContext
s until a cookie is either located or there are no moreProcessingContext
s, in which casenull
is returned.- Specified by:
getCookie
in interfaceProcessingContext
- Type Parameters:
T
- the type of the cookie- Parameters:
clzCookie
- the class of the cookiesName
- the name of the cookie- Returns:
- the cookie or
null
if not defined
-
getCookie
public <T> T getCookie(Class<T> 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 outerProcessingContext
s until a cookie is either located or there are no moreProcessingContext
s, in which casenull
is returned.This method is equivalent to calling:
getCookie(clz, clz.getName());
- Specified by:
getCookie
in interfaceProcessingContext
- Type Parameters:
T
- the type of the cookie- Parameters:
clzCookie
- the class of the cookie- Returns:
- the cookie or
null
if not defined
-
definePropertyPath
public void definePropertyPath(String sBeanPropertyName, String sXmlPath)
Defines the xml path to locate a specific Java Bean property with in anXmlElement
in theProcessingContext
.This method allows "alias" paths for Java Bean properties to be defined so that
ProcessingContext.inject(Object, XmlElement)
calls may resolve property values correctly.This is an advanced feature. Typically this is only used when:
- A Java Bean property name does not match a named value,
XmlElement
orXmlAttribute
with in aProcessingContext
. - A Java Bean property can not be located with in the
ProcessingContext
.
- Specified by:
definePropertyPath
in interfaceProcessingContext
- Parameters:
sBeanPropertyName
- the property name of the beansXmlPath
- the xmlPath to the property value
- A Java Bean property name does not match a named value,
-
registerProcessor
public <T> void registerProcessor(Class<T> clzType, AttributeProcessor<T> processor)
Registers anAttributeProcessor
that may be used to process specific types of values contained inXmlAttribute
s with in theProcessingContext
.When an
AttributeProcessor
isn't provided by the associatedNamespaceHandler
for anXmlAttribute
, an attempt is made to use a type specificAttributeProcessor
to process anXmlAttribute
for injection (withProcessingContext.inject(Object, XmlElement)
).- Specified by:
registerProcessor
in interfaceProcessingContext
- Type Parameters:
T
- the type- Parameters:
clzType
- theClass
typeprocessor
- theAttributeProcessor
for the type
-
registerProcessor
public <T> void registerProcessor(Class<T> clzType, ElementProcessor<T> processor)
Registers anElementProcessor
that may be used to process specific types of values contained inXmlElement
s with in theProcessingContext
.When an
ElementProcessor
isn't provided by the associatedNamespaceHandler
for anXmlElement
, an attempt is made to use a type specificElementProcessor
to process anXmlElement
for injection (withProcessingContext.inject(Object, XmlElement)
).- Specified by:
registerProcessor
in interfaceProcessingContext
- Type Parameters:
T
- the type- Parameters:
clzType
- theClass
typeprocessor
- theElementProcessor
for the type
-
registerAttributeType
public <T> void registerAttributeType(Class<T> clzType)
Automatically creates and registers anAttributeProcessor
for the specified type.Note: This assumes the type supports a
String
-based orXmlAttribute
-based constructor.- Specified by:
registerAttributeType
in interfaceProcessingContext
- Type Parameters:
T
- the type- Parameters:
clzType
- the type for which to create and register anAttributeProcessor
-
registerElementType
public <T> void registerElementType(Class<T> clzType)
Automatically creates and registers anElementProcessor
for the specified type.Note: This assumes the type supports a
String
-based orXmlElement
-based constructor.- Specified by:
registerElementType
in interfaceProcessingContext
- Type Parameters:
T
- the type- Parameters:
clzType
- the type for which to create and register anElementProcessor
-
getExpressionParser
public ExpressionParser getExpressionParser()
Obtains the configuredExpressionParser
for thisProcessingContext
.- Specified by:
getExpressionParser
in interfaceProcessingContext
- Returns:
- the
ExpressionParser
-
processDocument
public Object processDocument(XmlElement xmlElement) throws ConfigurationException
Request that the specifiedXmlElement
(representing the root of an XmlDocument) be processed with appropriateNamespaceHandler
s.Should the document root contain any unrecognized xml namespaces, an attempt will be made to load appropriate
NamespaceHandler
s that of which will be used to process said elements in the document.- Specified by:
processDocument
in interfaceProcessingContext
- Parameters:
xmlElement
- the rootXmlElement
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
-
processDocumentAt
public Object processDocumentAt(URI uri) throws ConfigurationException
Request that the document specified by the URI/filename (containing the root of an XmlDocument) be processed with appropriateNamespaceHandler
s.Should the document root contain any unrecognized xml namespaces, an attempt will be made to load appropriate
NamespaceHandler
s that of which will be used to process said elements in the document.- Specified by:
processDocumentAt
in interfaceProcessingContext
- Parameters:
uri
- theURI
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
public Object processDocumentAt(String sLocation) throws ConfigurationException
Request that the document specified by the URI/filename (containing the root of an XmlDocument) be processed with appropriateNamespaceHandler
s.Should the document root contain any unrecognized xml namespaces, an attempt will be made to load appropriate
NamespaceHandler
s that of which will be used to process said elements in the document.- Specified by:
processDocumentAt
in interfaceProcessingContext
- 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
public Object processDocument(String sXml) throws ConfigurationException
Request that the specified xml string (representing an xml document) be processed with appropriateNamespaceHandler
s.Should the document root contain any unrecognized xml namespaces, an attempt will be made to load appropriate
NamespaceHandler
s that of which will be used to process said elements in the document.- Specified by:
processDocument
in interfaceProcessingContext
- 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
public Object processElement(XmlElement xmlElement) throws ConfigurationException
Request the specifiedXmlElement
to be processed with an appropriateNamespaceHandler
known by theProcessingContext
or outerProcessingContext
s.Note: Should the element contain any unrecognized xml namespaces, an attempt will be made to load appropriate
NamespaceHandler
s that of which will be used to process said elements.- Specified by:
processElement
in interfaceProcessingContext
- Parameters:
xmlElement
- theXmlElement
to process- Returns:
- the result of processing the
XmlElement
with an appropriateElementProcessor
- Throws:
ConfigurationException
- when a configuration problem was encountered
-
processElement
public Object processElement(String sXml) throws ConfigurationException
Request the specified xml string be processed with an appropriateNamespaceHandler
known by theProcessingContext
.Note: Should the element contain any unrecognized xml namespaces, an attempt will be made to load appropriate
NamespaceHandler
s that of which will be used to process said elements.- Specified by:
processElement
in interfaceProcessingContext
- 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
-
processOnlyElementOf
public <T> T processOnlyElementOf(XmlElement xmlElement) throws ConfigurationException
Request that the only child element contained within theXmlElement
is processed using an appropriateNamespaceHandler
known by theProcessingContext
.- Specified by:
processOnlyElementOf
in interfaceProcessingContext
- Type Parameters:
T
- the type- Parameters:
xmlElement
- theXmlElement
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
-
processElementsOf
public Map<String,?> processElementsOf(XmlElement xmlElement) throws ConfigurationException
Request that all of the child elements contained with in the specifiedXmlElement
be processed using appropriateNamespaceHandler
s known by theProcessingContext
.This is a convenience method to aid in the processing of all children of an
XmlElement
. The keys of the returnedMap
represent the id attributes each childXmlElement
. If anXmlElement
does not have a specified id attribute, a UUID is generated in it's place.- Specified by:
processElementsOf
in interfaceProcessingContext
- Parameters:
xmlElement
- the parentXmlElement
of the children to process- Returns:
- a
Map
from identifiable childXmlElement
s (with id="..." attributes) and their corresponding processed values - Throws:
ConfigurationException
- when a configuration problem was encountered
-
processForeignElementsOf
public Map<String,?> processForeignElementsOf(XmlElement xmlElement) throws ConfigurationException
Request that all of the child elements contained within the specifiedXmlElement
that do not belong to the namespace of the saidXmlElement
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 returnedMap
represent the id attributes each childXmlElement
. If anXmlElement
does not have a specified id attribute, a UUID is generated in it's place.- Specified by:
processForeignElementsOf
in interfaceProcessingContext
- Parameters:
xmlElement
- the parentXmlElement
of the children to process- Returns:
- a
Map
from identifiable childXmlElement
s (with id="..." attributes) and their corresponding processed values - Throws:
ConfigurationException
- when a configuration problem was encountered
-
processRemainingElementsOf
public Map<String,?> processRemainingElementsOf(XmlElement xmlElement) throws ConfigurationException
Request that the last remaining unprocessed children contained within the specifiedXmlElement
are processed using appropriateElementProcessor
s.This is a convenience method to aid in the processing of an unprocessed child
XmlElement
s of an element. The keys of the returnedMap
represent the id attributes each childXmlElement
. If anXmlElement
does not have a specified id attribute, a UUID is generated in it's place.- Specified by:
processRemainingElementsOf
in interfaceProcessingContext
- Parameters:
xmlElement
- the parentXmlElement
of the unprocessed children to process- Returns:
- a
Map
from identifiable childXmlElement
s (with id="..." attributes) and their corresponding processed values - Throws:
ConfigurationException
- when a configuration problem was encountered
-
processRemainingElementOf
public <T> T processRemainingElementOf(XmlElement xmlElement) throws ConfigurationException
Request that the last remaining unprocessed child element contained within the specifiedXmlElement
is processed using an appropriateElementProcessor
.This is a convenience method to aid in the processing of an unprocessed child
XmlElement
of an element.- Specified by:
processRemainingElementOf
in interfaceProcessingContext
- Type Parameters:
T
- the type- Parameters:
xmlElement
- the parentXmlElement
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 otherConfigurationException
occurred
-
isPropertyDefined
public boolean isPropertyDefined(String sPropertyName, XmlElement xmlParent) throws ConfigurationException
Determines if the specified property is defined at the path relative to the specifiedXmlElement
.- Specified by:
isPropertyDefined
in interfaceProcessingContext
- Parameters:
sPropertyName
- the path to the propertyxmlParent
- theXmlElement
in which the property should be searched- Returns:
true
if the property is defined,false
otherwise- Throws:
ConfigurationException
- if a configuration is not valid
-
inject
public <B> B inject(B bean, XmlElement xmlElement) throws ConfigurationException
Given the information available in theProcessingContext
, including the cookies, theResourceRegistry
theXmlElement
, itsXmlAttribute
s 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 theProcessingContext
and finally theResourceRegistry
associated with theProcessingContext
.- Specified by:
inject
in interfaceProcessingContext
- Type Parameters:
B
- the bean type- Parameters:
bean
- the bean to be injectedxmlElement
- theXmlElement
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
-
getMandatoryProperty
public <T> T getMandatoryProperty(String sPath, Type typeProperty, XmlElement xmlParent) throws ConfigurationException
Obtains the strongly typed value for the property defined at the path relative to the specifiedXmlElement
. If the property is not defined or is of the incorrect type, aConfigurationException
is thrown.- Specified by:
getMandatoryProperty
in interfaceProcessingContext
- Type Parameters:
T
- the type of the property- Parameters:
sPath
- the path to the propertytypeProperty
- the type of the propertyxmlParent
- theXmlElement
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
public <T> T getOptionalProperty(String sPropertyName, Type typeProperty, T defaultValue, XmlElement xmlElement) throws ConfigurationException
Obtains the strongly typed value for the property defined at the path relative to the specifiedXmlElement
. If the property is not defined, the defaultValue is returned.- Specified by:
getOptionalProperty
in interfaceProcessingContext
- Type Parameters:
T
- the type of the property- Parameters:
sPropertyName
- the path to the propertytypeProperty
- the type of the propertydefaultValue
- the value to return if the property is not foundxmlElement
- theXmlElement
containing the properties for the object- Returns:
- the property value
- Throws:
ConfigurationException
- if a configuration is not valid
-
loadNamespaceHandlers
public void loadNamespaceHandlers(XmlElement xmlElement)
Load all the customNamespaceHandler
instances for the specifiedXmlElement
.- Specified by:
loadNamespaceHandlers
in interfaceProcessingContext
- Parameters:
xmlElement
- theXmlElement
to loadNamespaceHandler
instances for
-
ensureNamespaceHandler
public NamespaceHandler ensureNamespaceHandler(String sPrefix, NamespaceHandler handler) throws ConfigurationException
Ensures that the specifiedNamespaceHandler
for the specified prefix is defined in thisProcessingContext
.If a
NamespaceHandler
for the prefix does not exist in theProcessingContext
, it is added. Otherwise the existingNamespaceHandler
for the prefix is returned.- Specified by:
ensureNamespaceHandler
in interfaceProcessingContext
- Parameters:
sPrefix
- the prefix of the xml Namespace to be associated with theNamespaceHandler
handler
- theNamespaceHandler
- Returns:
- the registered
NamespaceHandler
for theProcessingContext
- Throws:
ConfigurationException
-
ensureNamespaceHandler
public NamespaceHandler ensureNamespaceHandler(String sPrefix, URI uri) throws ConfigurationException
Ensures that anNamespaceHandler
with the specifiedURI
is available for use in theProcessingContext
with the specified prefix. If aNamespaceHandler
with the specified prefix andURI
is not defined by theProcessingContext
, one is instantiated, registered and returned.- Specified by:
ensureNamespaceHandler
in interfaceProcessingContext
- Parameters:
sPrefix
- the prefix of the Xml Namespace to use for theNamespaceHandler
uri
- theURI
detailing the location of theNamespaceHandler
. 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 andURI
- Throws:
ConfigurationException
- when a configuration problem was encountered
-
getNamespaceHandler
public NamespaceHandler getNamespaceHandler(String sPrefix)
Obtains theNamespaceHandler
which is capable of processing the namespace with the specified prefix.- Specified by:
getNamespaceHandler
in interfaceProcessingContext
- Parameters:
sPrefix
- the prefix of the xml namespace- Returns:
null
if aNamespaceHandler
could not be located for the specified prefix
-
getNamespaceHandler
public NamespaceHandler getNamespaceHandler(URI uri)
Obtains theNamespaceHandler
that is capable of processing the namespace defined with the specifiedURI
.- Specified by:
getNamespaceHandler
in interfaceProcessingContext
- Parameters:
uri
- the Xml NamespaceURI
of theNamespaceHandler
to locate- Returns:
null
if aNamespaceHandler
could not be located for the specifiedURI
-
getNamespaceURI
public URI getNamespaceURI(String sPrefix)
Obtains theURI
that is associated with the specified prefix.- Specified by:
getNamespaceURI
in interfaceProcessingContext
- Parameters:
sPrefix
- the XML namespace prefix of theURI
to locate- Returns:
null
if aURI
could not be located for the specifiedURI
-
getNamespaceHandlers
public Iterable<NamespaceHandler> getNamespaceHandlers()
Obtains theNamespaceHandler
s that are currently in scope for thisProcessingContext
.- Specified by:
getNamespaceHandlers
in interfaceProcessingContext
- Returns:
- An
Iterable
over theNamespaceHandler
s in scope.
-
getDependencies
public DocumentProcessor.Dependencies getDependencies()
- Returns:
- the
DocumentProcessor.Dependencies
-
getPropertyValue
public Value getPropertyValue(String sPropertyName, Type typeProperty, XmlElement xmlParent, boolean fOnlyUsePropertyName) throws ConfigurationException
Attempts to resolve the named property of the specified type in the current context and if required will parse the specifiedXmlElement
in order to do so.- Parameters:
sPropertyName
- the name or xml path to the propertytypeProperty
- the required type of the property valuexmlParent
- the parent element in which the property may be foundfOnlyUsePropertyName
- whentrue
the specified property name must be used resolve the property value. whenfalse
attempts may be made to resolve the property just the type name if the specified property name doesn't resolve a property- Returns:
- The
Value
representing the property ornull
if the property could not be located - Throws:
ConfigurationException
- if the property was but could not be processed or is of the incorrect type
-
isRootContext
public boolean isRootContext()
Determines if theProcessingContext
is the root. ie: has no parent.- Returns:
true
if theProcessingContext
is the root scope,false
otherwise
-
close
public void close()
- Specified by:
close
in interfaceAutoCloseable
-
-