org.apache.xalan.templates
Class RedundentExprEliminator
java.lang.Object
|
+--org.apache.xpath.XPathVisitor
|
+--org.apache.xalan.templates.XSLTVisitor
|
+--org.apache.xalan.templates.RedundentExprEliminator
- public class RedundentExprEliminator
- extends XSLTVisitor
This class eleminates redundent XPaths from a given subtree,
and also collects all absolute paths within the subtree. First
it must be called as a visitor to the subtree, and then
eleminateRedundent must be called.
Methods inherited from class java.lang.Object |
equals,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
DEBUG
public static boolean DEBUG
DIAGNOSE_NUM_PATHS_REDUCED
public static boolean DIAGNOSE_NUM_PATHS_REDUCED
DIAGNOSE_MULTISTEPLIST
public static boolean DIAGNOSE_MULTISTEPLIST
RedundentExprEliminator
public RedundentExprEliminator()
- Construct a RedundentExprEliminator.
- Parameters:
absPathsList
- Vector to which absolute paths will
be inserted. The vector may be null, if the caller does
not wish to collect absolute paths.
eleminateRedundentLocals
public void eleminateRedundentLocals(ElemTemplateElement psuedoVarRecipient)
- Method to be called after the all expressions within an
node context have been visited. It eliminates redundent
expressions by creating a variable in the psuedoVarRecipient
for each redundent expression, and then rewriting the redundent
expression to be a variable reference.
- Parameters:
psuedoVarRecipient
- The recipient of the psuedo vars. The
variables will be inserted as first children of the element, before
any existing variables.
eleminateRedundentGlobals
public void eleminateRedundentGlobals(StylesheetRoot stylesheet)
- Method to be called after the all global expressions within a stylesheet
have been collected. It eliminates redundent
expressions by creating a variable in the psuedoVarRecipient
for each redundent expression, and then rewriting the redundent
expression to be a variable reference.
- Parameters:
psuedoVarRecipient
- The recipient of the psuedo vars. The
variables will be inserted as first children of the element, before
any existing variables.
isAbsolute
public boolean isAbsolute(LocPathIterator path)
- Tell if the given LocPathIterator is relative to an absolute path, i.e.
in not dependent on the context.
- Returns:
- true if the LocPathIterator is not dependent on the context node.
visitLocationPath
public boolean visitLocationPath(ExpressionOwner owner,
LocPathIterator path)
- Visit a LocationPath.
- Parameters:
owner
- The owner of the expression, to which the expression can
be reset if rewriting takes place.path
- The LocationPath object.- Returns:
- true if the sub expressions should be traversed.
- Overrides:
- visitLocationPath in class XPathVisitor
visitPredicate
public boolean visitPredicate(ExpressionOwner owner,
Expression pred)
- Visit a predicate within a location path. Note that there isn't a
proper unique component for predicates, and that the expression will
be called also for whatever type Expression is.
- Parameters:
owner
- The owner of the expression, to which the expression can
be reset if rewriting takes place.pred
- The predicate object.- Returns:
- true if the sub expressions should be traversed.
- Overrides:
- visitPredicate in class XPathVisitor
Copyright © 2003 Apache XML Project. All Rights Reserved.