diff options
Diffstat (limited to 'src/com/sun/org/apache/xpath/internal/axes/FilterExprIterator.java')
-rw-r--r-- | src/com/sun/org/apache/xpath/internal/axes/FilterExprIterator.java | 216 |
1 files changed, 0 insertions, 216 deletions
diff --git a/src/com/sun/org/apache/xpath/internal/axes/FilterExprIterator.java b/src/com/sun/org/apache/xpath/internal/axes/FilterExprIterator.java deleted file mode 100644 index d749273..0000000 --- a/src/com/sun/org/apache/xpath/internal/axes/FilterExprIterator.java +++ /dev/null @@ -1,216 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 1999-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * $Id: FilterExprIterator.java,v 1.2.4.2 2005/09/14 19:45:22 jeffsuttor Exp $ - */ -package com.sun.org.apache.xpath.internal.axes; - -import com.sun.org.apache.xml.internal.dtm.DTM; -import com.sun.org.apache.xpath.internal.Expression; -import com.sun.org.apache.xpath.internal.ExpressionOwner; -import com.sun.org.apache.xpath.internal.XPathVisitor; -import com.sun.org.apache.xpath.internal.objects.XNodeSet; - -public class FilterExprIterator extends BasicTestIterator -{ - static final long serialVersionUID = 2552176105165737614L; - /** The contained expression. Should be non-null. - * @serial */ - private Expression m_expr; - - /** The result of executing m_expr. Needs to be deep cloned on clone op. */ - transient private XNodeSet m_exprObj; - - private boolean m_mustHardReset = false; - private boolean m_canDetachNodeset = true; - - /** - * Create a FilterExprIterator object. - * - */ - public FilterExprIterator() - { - super(null); - } - - /** - * Create a FilterExprIterator object. - * - */ - public FilterExprIterator(Expression expr) - { - super(null); - m_expr = expr; - } - - /** - * Initialize the context values for this expression - * after it is cloned. - * - * @param context The XPath runtime context for this - * transformation. - */ - public void setRoot(int context, Object environment) - { - super.setRoot(context, environment); - - m_exprObj = FilterExprIteratorSimple.executeFilterExpr(context, - m_execContext, getPrefixResolver(), - getIsTopLevel(), m_stackFrame, m_expr); - } - - - /** - * Get the next node via getNextXXX. Bottlenecked for derived class override. - * @return The next node on the axis, or DTM.NULL. - */ - protected int getNextNode() - { - if (null != m_exprObj) - { - m_lastFetched = m_exprObj.nextNode(); - } - else - m_lastFetched = DTM.NULL; - - return m_lastFetched; - } - - /** - * Detaches the walker from the set which it iterated over, releasing - * any computational resources and placing the iterator in the INVALID - * state. - */ - public void detach() - { - super.detach(); - m_exprObj.detach(); - m_exprObj = null; - } - - /** - * This function is used to fixup variables from QNames to stack frame - * indexes at stylesheet build time. - * @param vars List of QNames that correspond to variables. This list - * should be searched backwards for the first qualified name that - * corresponds to the variable reference qname. The position of the - * QName in the vector from the start of the vector will be its position - * in the stack frame (but variables above the globalsTop value will need - * to be offset to the current stack frame). - */ - public void fixupVariables(java.util.Vector vars, int globalsSize) - { - super.fixupVariables(vars, globalsSize); - m_expr.fixupVariables(vars, globalsSize); - } - - /** - * Get the inner contained expression of this filter. - */ - public Expression getInnerExpression() - { - return m_expr; - } - - /** - * Set the inner contained expression of this filter. - */ - public void setInnerExpression(Expression expr) - { - expr.exprSetParent(this); - m_expr = expr; - } - - /** - * Get the analysis bits for this walker, as defined in the WalkerFactory. - * @return One of WalkerFactory#BIT_DESCENDANT, etc. - */ - public int getAnalysisBits() - { - if (null != m_expr && m_expr instanceof PathComponent) - { - return ((PathComponent) m_expr).getAnalysisBits(); - } - return WalkerFactory.BIT_FILTER; - } - - /** - * Returns true if all the nodes in the iteration well be returned in document - * order. - * Warning: This can only be called after setRoot has been called! - * - * @return true as a default. - */ - public boolean isDocOrdered() - { - return m_exprObj.isDocOrdered(); - } - - class filterExprOwner implements ExpressionOwner - { - /** - * @see ExpressionOwner#getExpression() - */ - public Expression getExpression() - { - return m_expr; - } - - /** - * @see ExpressionOwner#setExpression(Expression) - */ - public void setExpression(Expression exp) - { - exp.exprSetParent(FilterExprIterator.this); - m_expr = exp; - } - - } - - /** - * This will traverse the heararchy, calling the visitor for - * each member. If the called visitor method returns - * false, the subtree should not be called. - * - * @param visitor The visitor whose appropriate method will be called. - */ - public void callPredicateVisitors(XPathVisitor visitor) - { - m_expr.callVisitors(new filterExprOwner(), visitor); - - super.callPredicateVisitors(visitor); - } - - /** - * @see Expression#deepEquals(Expression) - */ - public boolean deepEquals(Expression expr) - { - if (!super.deepEquals(expr)) - return false; - - FilterExprIterator fet = (FilterExprIterator) expr; - if (!m_expr.deepEquals(fet.m_expr)) - return false; - - return true; - } - -} |