org.apache.aries.blueprint.testbundlea
Class NSHandlerTwo

java.lang.Object
  extended by org.apache.aries.blueprint.testbundlea.NSHandlerTwo
All Implemented Interfaces:
NamespaceHandler

public class NSHandlerTwo
extends java.lang.Object
implements NamespaceHandler

A simple example namespace handler, that understands an element, and 2 attributes When attribone is found on a bean, an interceptor is added that will track invocations. This handler is designed to exercise aspects of the NamespaceHandler capability set.


Field Summary
static java.lang.String NSURI
           
 
Constructor Summary
NSHandlerTwo()
           
 
Method Summary
 ComponentMetadata decorate(org.w3c.dom.Node node, ComponentMetadata component, ParserContext context)
          Process a child node of an enclosing blueprint component.
 java.util.List<java.lang.String> getLog()
           
 java.util.Set<java.lang.Class> getManagedClasses()
          Specify a set of classes that must be consistent between a blueprint bundle and this namespace handler The blueprint extender will not invoke a namespace handler if any of the managed classes are inconsistent with the class space of the blueprint bundle (i.e.
 java.net.URL getSchemaLocation(java.lang.String namespace)
          Retrieve a URL from where the schema for a given namespace can be retrieved
 Metadata parse(org.w3c.dom.Element element, ParserContext context)
          Parse a stand-alone blueprint component Given an Element node as a root, this method parses the stand-alone component and returns its metadata.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NSURI

public static java.lang.String NSURI
Constructor Detail

NSHandlerTwo

public NSHandlerTwo()
Method Detail

decorate

public ComponentMetadata decorate(org.w3c.dom.Node node,
                                  ComponentMetadata component,
                                  ParserContext context)
Description copied from interface: NamespaceHandler
Process a child node of an enclosing blueprint component. If the decorator method returns a new ComponentMetadata instance, this will replace the argument ComponentMetadata in subsequent parsing and namespace handler invocations. A namespace handler that elects to return a new ComponentMetadata instance should ensure that existing interceptors are registered against the new instance if appropriate. Due to the interaction with interceptors, a namespace handler should prefer to change a component metadata instead of returning a new instance wherever possible. This can be achieved by casting a ComponentMetadata to its corresponding MutabableComponentMetadata instance. Note however that a given ComponentMetadata instance cannot be guaranteed to implement the mutable interface if it was constructed by an agent other than the blueprint extender.

Specified by:
decorate in interface NamespaceHandler
Parameters:
node - The node associated with this NamespaceHandler that should be used to decorate the enclosing component
component - The enclosing blueprint component
context - The parser context
Returns:
The decorated component to be used instead of the original enclosing component. This can of course be the original component.

parse

public Metadata parse(org.w3c.dom.Element element,
                      ParserContext context)
Description copied from interface: NamespaceHandler
Parse a stand-alone blueprint component Given an Element node as a root, this method parses the stand-alone component and returns its metadata. The supplied ParserContext should be used to parse embedded blueprint elements as well as creating metadata.

Specified by:
parse in interface NamespaceHandler
Parameters:
element - The DOM element representing the custom component
context - The ParserContext for parsing sub-components and creating metadata objects
Returns:
A metadata instance representing the custom component. This should be an instance of an appropriate MutableMetadata type to enable further decoration by other namespace handlers

getSchemaLocation

public java.net.URL getSchemaLocation(java.lang.String namespace)
Description copied from interface: NamespaceHandler
Retrieve a URL from where the schema for a given namespace can be retrieved

Specified by:
getSchemaLocation in interface NamespaceHandler
Parameters:
namespace - The schema's namespace
Returns:
A URL that points to the location of the schema or null if the namespace validation is not needed

getManagedClasses

public java.util.Set<java.lang.Class> getManagedClasses()
Description copied from interface: NamespaceHandler
Specify a set of classes that must be consistent between a blueprint bundle and this namespace handler The blueprint extender will not invoke a namespace handler if any of the managed classes are inconsistent with the class space of the blueprint bundle (i.e. if the blueprint bundle loads any of the managed classes from a different classloader).

Specified by:
getManagedClasses in interface NamespaceHandler
Returns:
a Set of classes that must be compatible with any blueprint bundle for which this namespace handler is to apply or null if no compatibility checks are to be performed

getLog

public java.util.List<java.lang.String> getLog()


Copyright © 2009-2011 The Apache Software Foundation. All Rights Reserved.