com.sun.rave.web.ui.renderer.template.xml
Class XMLLayoutDefinitionReader

java.lang.Object
  extended by com.sun.rave.web.ui.renderer.template.xml.XMLLayoutDefinitionReader

public class XMLLayoutDefinitionReader
extends java.lang.Object

This class is responsible for doing the actual parsing of an XML document following the layout.dtd. It produces a LayoutElement tree with a LayoutDefinition object at the root of the tree.


Field Summary
static java.lang.String ATTRIBUTE_ELEMENT
           
static java.lang.String AUTO_RENDERED
           
static java.lang.String CLASS_NAME_ATTRIBUTE
           
static java.lang.String COMPONENT_ELEMENT
           
static java.lang.String COMPONENT_TYPE_ELEMENT
           
static java.lang.String CONDITION_ATTRIBUTE
           
static java.lang.String DEFAULT_ATTRIBUTE
           
static java.lang.String DESCRIPTION_ATTRIBUTE
           
static java.lang.String EVENT_ELEMENT
           
static java.lang.String EXTRA_INFO_ATTRIBUTE
           
static java.lang.String FACET_ELEMENT
           
static java.lang.String FACTORY_CLASS_ATTRIBUTE
           
static java.lang.String FOREACH_ELEMENT
           
static java.lang.String HANDLER_DEFINITION_ELEMENT
           
static java.lang.String HANDLER_ELEMENT
           
static java.lang.String HANDLERS_ELEMENT
           
static java.lang.String ID_ATTRIBUTE
           
static java.lang.String IF_ELEMENT
           
static java.lang.String INPUT_DEF_ELEMENT
           
static java.lang.String INPUT_ELEMENT
           
static java.lang.String KEY_ATTRIBUTE
           
static java.lang.String LAYOUT_DEFINITION_ELEMENT
           
static java.lang.String LAYOUT_ELEMENT
           
static java.lang.String LIST_ATTRIBUTE
           
static java.lang.String LIST_ELEMENT
           
static java.lang.String MARKUP_ELEMENT
           
static java.lang.String METHOD_NAME_ATTRIBUTE
           
static java.lang.String NAME_ATTRIBUTE
           
static java.lang.String OPTION_ELEMENT
           
static java.lang.String OUTPUT_DEF_ELEMENT
           
static java.lang.String OUTPUT_MAPPING_ELEMENT
           
static java.lang.String OUTPUT_NAME_ATTRIBUTE
           
static java.lang.String OVERWRITE_ATTRIBUTE
           
static java.lang.String PROPERTY_ATTRIBUTE
           
static java.lang.String RENDERED_ATTRIBUTE
           
static java.lang.String REQUIRED_ATTRIBUTE
           
static java.lang.String RESOURCE_ELEMENT
           
static java.lang.String RESOURCES_ELEMENT
           
static java.lang.String STATIC_TEXT_ELEMENT
           
static java.lang.String TAG_ATTRIBUTE
           
static java.lang.String TARGET_KEY_ATTRIBUTE
           
static java.lang.String TARGET_TYPE_ATTRIBUTE
           
static java.lang.String TYPE_ATTRIBUTE
           
static java.lang.String TYPES_ELEMENT
           
static java.lang.String VALUE_ATTRIBUTE
           
static java.lang.String WHILE_ELEMENT
           
 
Constructor Summary
XMLLayoutDefinitionReader(java.net.URL url, org.xml.sax.EntityResolver entityResolver, org.xml.sax.ErrorHandler errorHandler, java.lang.String baseURI)
          Constructor.
 
Method Summary
 HandlerDefinition createHandlerDefinition(org.w3c.dom.Node node)
           This method takes the given HANDLER_DEFINITION_ELEMENT node and reads the ID_ATTRIBUTE, CLASS_NAME_ATTRIBUTE, and METHOD_NAME_ATTRIBUTE attributes.
 java.util.Map getAttributes(org.w3c.dom.Node node)
          This method returns a Map of all attributes for the given Node.
 java.lang.String getBaseURI()
          Accessor for the base URI.
 java.util.List getChildElements(org.w3c.dom.Node node)
          This method returns a List of all child Elements below the given Node.
 java.util.List getChildElements(org.w3c.dom.Node node, java.lang.String name)
           This method returns a List of all child Elements below the given Node matching the given name.
 ComponentType getComponentType(LayoutElement elt, java.lang.String type)
          This utility method returns the requested component type.
 org.xml.sax.EntityResolver getEntityResolver()
          Accessor for the entityResolver.
 org.xml.sax.ErrorHandler getErrorHandler()
          Accessor for the ErrorHandler.
 java.lang.String getTextNodesAsString(org.w3c.dom.Node node)
          This method returns the String representation of all the Node.TEXT_NODE nodes that are children of the given Node.
 java.net.URL getURL()
          Accessor for the URL.
 LayoutDefinition read()
           The read method opens the given URL and parses the XML document that it points to.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ATTRIBUTE_ELEMENT

public static final java.lang.String ATTRIBUTE_ELEMENT
See Also:
Constant Field Values

COMPONENT_ELEMENT

public static final java.lang.String COMPONENT_ELEMENT
See Also:
Constant Field Values

COMPONENT_TYPE_ELEMENT

public static final java.lang.String COMPONENT_TYPE_ELEMENT
See Also:
Constant Field Values

EVENT_ELEMENT

public static final java.lang.String EVENT_ELEMENT
See Also:
Constant Field Values

FACET_ELEMENT

public static final java.lang.String FACET_ELEMENT
See Also:
Constant Field Values

FOREACH_ELEMENT

public static final java.lang.String FOREACH_ELEMENT
See Also:
Constant Field Values

HANDLER_ELEMENT

public static final java.lang.String HANDLER_ELEMENT
See Also:
Constant Field Values

HANDLERS_ELEMENT

public static final java.lang.String HANDLERS_ELEMENT
See Also:
Constant Field Values

HANDLER_DEFINITION_ELEMENT

public static final java.lang.String HANDLER_DEFINITION_ELEMENT
See Also:
Constant Field Values

IF_ELEMENT

public static final java.lang.String IF_ELEMENT
See Also:
Constant Field Values

INPUT_DEF_ELEMENT

public static final java.lang.String INPUT_DEF_ELEMENT
See Also:
Constant Field Values

INPUT_ELEMENT

public static final java.lang.String INPUT_ELEMENT
See Also:
Constant Field Values

LAYOUT_DEFINITION_ELEMENT

public static final java.lang.String LAYOUT_DEFINITION_ELEMENT
See Also:
Constant Field Values

LAYOUT_ELEMENT

public static final java.lang.String LAYOUT_ELEMENT
See Also:
Constant Field Values

LIST_ELEMENT

public static final java.lang.String LIST_ELEMENT
See Also:
Constant Field Values

MARKUP_ELEMENT

public static final java.lang.String MARKUP_ELEMENT
See Also:
Constant Field Values

OPTION_ELEMENT

public static final java.lang.String OPTION_ELEMENT
See Also:
Constant Field Values

OUTPUT_DEF_ELEMENT

public static final java.lang.String OUTPUT_DEF_ELEMENT
See Also:
Constant Field Values

OUTPUT_MAPPING_ELEMENT

public static final java.lang.String OUTPUT_MAPPING_ELEMENT
See Also:
Constant Field Values

STATIC_TEXT_ELEMENT

public static final java.lang.String STATIC_TEXT_ELEMENT
See Also:
Constant Field Values

TYPES_ELEMENT

public static final java.lang.String TYPES_ELEMENT
See Also:
Constant Field Values

RESOURCES_ELEMENT

public static final java.lang.String RESOURCES_ELEMENT
See Also:
Constant Field Values

RESOURCE_ELEMENT

public static final java.lang.String RESOURCE_ELEMENT
See Also:
Constant Field Values

WHILE_ELEMENT

public static final java.lang.String WHILE_ELEMENT
See Also:
Constant Field Values

CLASS_NAME_ATTRIBUTE

public static final java.lang.String CLASS_NAME_ATTRIBUTE
See Also:
Constant Field Values

CONDITION_ATTRIBUTE

public static final java.lang.String CONDITION_ATTRIBUTE
See Also:
Constant Field Values

DEFAULT_ATTRIBUTE

public static final java.lang.String DEFAULT_ATTRIBUTE
See Also:
Constant Field Values

DESCRIPTION_ATTRIBUTE

public static final java.lang.String DESCRIPTION_ATTRIBUTE
See Also:
Constant Field Values

EXTRA_INFO_ATTRIBUTE

public static final java.lang.String EXTRA_INFO_ATTRIBUTE
See Also:
Constant Field Values

FACTORY_CLASS_ATTRIBUTE

public static final java.lang.String FACTORY_CLASS_ATTRIBUTE
See Also:
Constant Field Values

ID_ATTRIBUTE

public static final java.lang.String ID_ATTRIBUTE
See Also:
Constant Field Values

KEY_ATTRIBUTE

public static final java.lang.String KEY_ATTRIBUTE
See Also:
Constant Field Values

LIST_ATTRIBUTE

public static final java.lang.String LIST_ATTRIBUTE
See Also:
Constant Field Values

METHOD_NAME_ATTRIBUTE

public static final java.lang.String METHOD_NAME_ATTRIBUTE
See Also:
Constant Field Values

NAME_ATTRIBUTE

public static final java.lang.String NAME_ATTRIBUTE
See Also:
Constant Field Values

OUTPUT_NAME_ATTRIBUTE

public static final java.lang.String OUTPUT_NAME_ATTRIBUTE
See Also:
Constant Field Values

OVERWRITE_ATTRIBUTE

public static final java.lang.String OVERWRITE_ATTRIBUTE
See Also:
Constant Field Values

PROPERTY_ATTRIBUTE

public static final java.lang.String PROPERTY_ATTRIBUTE
See Also:
Constant Field Values

RENDERED_ATTRIBUTE

public static final java.lang.String RENDERED_ATTRIBUTE
See Also:
Constant Field Values

REQUIRED_ATTRIBUTE

public static final java.lang.String REQUIRED_ATTRIBUTE
See Also:
Constant Field Values

TAG_ATTRIBUTE

public static final java.lang.String TAG_ATTRIBUTE
See Also:
Constant Field Values

TARGET_KEY_ATTRIBUTE

public static final java.lang.String TARGET_KEY_ATTRIBUTE
See Also:
Constant Field Values

TARGET_TYPE_ATTRIBUTE

public static final java.lang.String TARGET_TYPE_ATTRIBUTE
See Also:
Constant Field Values

TYPE_ATTRIBUTE

public static final java.lang.String TYPE_ATTRIBUTE
See Also:
Constant Field Values

VALUE_ATTRIBUTE

public static final java.lang.String VALUE_ATTRIBUTE
See Also:
Constant Field Values

AUTO_RENDERED

public static final java.lang.String AUTO_RENDERED
See Also:
Constant Field Values
Constructor Detail

XMLLayoutDefinitionReader

public XMLLayoutDefinitionReader(java.net.URL url,
                                 org.xml.sax.EntityResolver entityResolver,
                                 org.xml.sax.ErrorHandler errorHandler,
                                 java.lang.String baseURI)
Constructor.

Parameters:
url - A URL pointing to the LayoutDefinition
entityResolver - EntityResolver to use, may be (null)
errorHandler - ErrorHandler to use, may be (null)
baseURI - The base URI passed to DocumentBuilder.parse()
Method Detail

getURL

public java.net.URL getURL()
Accessor for the URL.


getEntityResolver

public org.xml.sax.EntityResolver getEntityResolver()
Accessor for the entityResolver.


getErrorHandler

public org.xml.sax.ErrorHandler getErrorHandler()
Accessor for the ErrorHandler.


getBaseURI

public java.lang.String getBaseURI()
Accessor for the base URI.


read

public LayoutDefinition read()
                      throws java.io.IOException

The read method opens the given URL and parses the XML document that it points to. It then walks the DOM and populates a LayoutDefinition structure, which is returned.

Returns:
The LayoutDefinition
Throws:
java.io.IOException

createHandlerDefinition

public HandlerDefinition createHandlerDefinition(org.w3c.dom.Node node)

This method takes the given HANDLER_DEFINITION_ELEMENT node and reads the ID_ATTRIBUTE, CLASS_NAME_ATTRIBUTE, and METHOD_NAME_ATTRIBUTE attributes. It then instantiates a new HandlerDefinition object.

Next it looks to see if the HandlerDefinition has child inputDef, outputDef, and/or nested handler elements. If so it processes them.

Parameters:
node - The HANDLER_DEFINITION_ELEMENT node to extract information from when creating the HandlerDefinition.
Returns:
The newly created HandlerDefinition.

getChildElements

public java.util.List getChildElements(org.w3c.dom.Node node)
This method returns a List of all child Elements below the given Node.

Parameters:
node - The node to pull child elements from.
Returns:
List of child elements found below the given node.

getChildElements

public java.util.List getChildElements(org.w3c.dom.Node node,
                                       java.lang.String name)

This method returns a List of all child Elements below the given Node matching the given name. If name equals null, all Elements below this node will be returned.

Parameters:
node - The node to pull child elements from.
name - The name of the Elements to return.
Returns:
List of child elements found below the given node matching the name (if provided).

getTextNodesAsString

public java.lang.String getTextNodesAsString(org.w3c.dom.Node node)
This method returns the String representation of all the Node.TEXT_NODE nodes that are children of the given Node.

Parameters:
node - The node to pull child elements from.
Returns:
The String representation of all the Node.TEXT_NODE type nodes under the given node.

getAttributes

public java.util.Map getAttributes(org.w3c.dom.Node node)
This method returns a Map of all attributes for the given Node. Each attribute name will be stored in the map in lower case so case can be ignored.

Parameters:
node - The node to pull attributes from.
Returns:
Map of attributes found on the given node.

getComponentType

public ComponentType getComponentType(LayoutElement elt,
                                      java.lang.String type)
This utility method returns the requested component type. If it is not found, it throws an IllegalArgumentException.

Parameters:
elt - A LayoutElement whose root is LayoutDefinition
type - The String type to lookup
Returns:
the ComponentType