org.exolab.adaptx.xslt
Class TemplateRule

java.lang.Object
  extended by org.exolab.adaptx.xslt.XSLObject
      extended by org.exolab.adaptx.xslt.TemplateRule

public final class TemplateRule
extends XSLObject

A class that Represents an XSLT Template Rule. Section 5 of the W3C XSLT 1.0 Recommendation (19991116).

Version:
$Revision: 3633 $ $Date: 2003-03-01 02:38:44 -0500 (Sat, 01 Mar 2003) $
Author:
Keith Visco

Field Summary
 
Fields inherited from class org.exolab.adaptx.xslt.XSLObject
APPLY_IMPORTS, APPLY_TEMPLATES, ARG, ATTRIBUTE, ATTRIBUTE_SET, CALL_TEMPLATE, CDATA, CHOOSE, COMMENT, CONTENTS, COPY, COPY_OF, ELEMENT, ENTITY_REF, FOR_EACH, FUNCTIONS, ID, IF, IMPORT, INCLUDE, KEY, LITERAL, LOCALE, MESSAGE, NUMBER, OTHERWISE, OUTPUT, PARAM, PI, PRESERVE_SPACE, SCRIPT, SORT, STRIP_SPACE, STYLESHEET, TEMPLATE, TEXT, VALUE_OF, VARIABLE, WHEN, WITH_PARAM
 
Constructor Summary
TemplateRule()
          Creates a new TemplateRule.
By default the new rule will not match any elements.
 
Method Summary
 float calculatePriority(XPathNode node, XPathContext context)
          Calculates the priority for this Template Rule.
 XSLObject copy()
          Creates a copy of this TemplateRule
 LocationPathPattern getMatchingPattern(XPathNode node, XPathContext context)
          Returns the Pattern contained within this template rule that matched the given node using the given context.
 java.lang.String getMode()
          Returns the mode attribute of this Template Rule
 java.lang.String getName()
          Returns the name for this Template Rule, or null if no name exists.
 Pattern getPattern()
          Returns the match Pattern for this template
 boolean matches(XPathNode node, ProcessorState ps)
          Determines if the given node is matched by this MatchExpr with respect to the given context node.
 void setAttribute(java.lang.String name, java.lang.String value)
          Sets the attribute with the given name to the given value.
 void setMatchAttr(java.lang.String matchPattern)
          Sets the MatchExpr for this TemplateRule
 void setModeAttr(java.lang.String mode)
           
 void setName(java.lang.String name)
          Sets the name for this Template
 void setPriority(float priority)
          Sets the priority for this TemplateRule
 
Methods inherited from class org.exolab.adaptx.xslt.XSLObject
addNamespaceDecl, appendAction, appendText, appendText, getActions, getAttribute, getAttributes, getNamespace, getNearestAncestor, getNodeValue, getStylesheet, getText, getType, getTypeFromName, getTypeName, resolveNamespace, setAllowActions, setNamespace, setTypeName
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TemplateRule

public TemplateRule()
Creates a new TemplateRule.
By default the new rule will not match any elements.

Method Detail

calculatePriority

public float calculatePriority(XPathNode node,
                               XPathContext context)
Calculates the priority for this Template Rule. The priority is calculated using the rules from Section 5.5 of the XSLT 1.0 Recommendation.

Returns:
the priority for this Template Rule

copy

public XSLObject copy()
Creates a copy of this TemplateRule

Returns:
the new copy of this TemplateRule

getMatchingPattern

public LocationPathPattern getMatchingPattern(XPathNode node,
                                              XPathContext context)
                                       throws XPathException
Returns the Pattern contained within this template rule that matched the given node using the given context.

Parameters:
node - the XPathNode to match against
context - the XPathContext to match against
Returns:
the matching pattern, or null if no patterns matched the given node.
Throws:
XPathException

getMode

public java.lang.String getMode()
Returns the mode attribute of this Template Rule

Returns:
the value of the mode attribute.

getName

public java.lang.String getName()
Returns the name for this Template Rule, or null if no name exists.


getPattern

public Pattern getPattern()
Returns the match Pattern for this template

Returns:
the match Pattern for this template

matches

public boolean matches(XPathNode node,
                       ProcessorState ps)
                throws XSLException
Determines if the given node is matched by this MatchExpr with respect to the given context node. Note: If there are errors in the XPath expression of this template, the errors are reported on first use of the template. The template will then be disabled and no longer used for XSLT processing.

Parameters:
node - the node to determine a match for
context - the Node which represents the current context
ps - the current ProcessorState
Returns:
true if the given node is matched by this MatchExpr
Throws:
XSLException

setAttribute

public void setAttribute(java.lang.String name,
                         java.lang.String value)
                  throws XSLException
Sets the attribute with the given name to the given value.

Overrides:
setAttribute in class XSLObject
Parameters:
name - the name of the attribute to set
value - the value to set the attribute to
Throws:
XSLException - if this XSLObject does not allow attributes with the given name, or if the attribute is read only

setMatchAttr

public void setMatchAttr(java.lang.String matchPattern)
Sets the MatchExpr for this TemplateRule

Parameters:
matchPattern - the desired Match Pattern to use for this template

setModeAttr

public void setModeAttr(java.lang.String mode)

setName

public void setName(java.lang.String name)
Sets the name for this Template

Parameters:
name - the name to use for this template

setPriority

public void setPriority(float priority)
Sets the priority for this TemplateRule

Parameters:
priority - the desired priority of this rule. 0 by default