Java Code Examples for org.apache.xpath.compiler.Compiler#getLocationPathDepth()

The following examples show how to use org.apache.xpath.compiler.Compiler#getLocationPathDepth() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: UnionPathIterator.java    From j2objc with Apache License 2.0 4 votes vote down vote up
/**
 * Initialize the location path iterators.  Recursive.
 *
 * @param compiler The Compiler which is creating 
 * this expression.
 * @param opPos The position of this iterator in the 
 * opcode list from the compiler.
 * @param count The insert position of the iterator.
 *
 * @throws javax.xml.transform.TransformerException
 */
protected void loadLocationPaths(Compiler compiler, int opPos, int count)
        throws javax.xml.transform.TransformerException
{

  // TODO: Handle unwrapped FilterExpr
  int steptype = compiler.getOp(opPos);

  if (steptype == OpCodes.OP_LOCATIONPATH)
  {
    loadLocationPaths(compiler, compiler.getNextOpPos(opPos), count + 1);

    m_exprs[count] = createDTMIterator(compiler, opPos);
    m_exprs[count].exprSetParent(this);
  }
  else
  {

    // Have to check for unwrapped functions, which the LocPathIterator
    // doesn't handle. 
    switch (steptype)
    {
    case OpCodes.OP_VARIABLE :
    case OpCodes.OP_EXTFUNCTION :
    case OpCodes.OP_FUNCTION :
    case OpCodes.OP_GROUP :
      loadLocationPaths(compiler, compiler.getNextOpPos(opPos), count + 1);

      WalkingIterator iter =
        new WalkingIterator(compiler.getNamespaceContext());
      iter.exprSetParent(this);
        
      if(compiler.getLocationPathDepth() <= 0)
        iter.setIsTopLevel(true);

      iter.m_firstWalker = new org.apache.xpath.axes.FilterExprWalker(iter);

      iter.m_firstWalker.init(compiler, opPos, steptype);

      m_exprs[count] = iter;
      break;
    default :
      m_exprs = new LocPathIterator[count];
    }
  }
}
 
Example 2
Source File: FuncLast.java    From j2objc with Apache License 2.0 4 votes vote down vote up
/**
 * Figure out if we're executing a toplevel expression.
 * If so, we can't be inside of a predicate. 
 */
public void postCompileStep(Compiler compiler)
{
  m_isTopLevel = compiler.getLocationPathDepth() == -1;
}
 
Example 3
Source File: FuncPosition.java    From j2objc with Apache License 2.0 4 votes vote down vote up
/**
 * Figure out if we're executing a toplevel expression.
 * If so, we can't be inside of a predicate. 
 */
public void postCompileStep(Compiler compiler)
{
  m_isTopLevel = compiler.getLocationPathDepth() == -1;
}