public Set<String> visitPost( Select node, Set<String> v ) { currentIndex.pop(); return v; } public Set<String> visitPost( Remap node, Set<String> v ) throws QueryBuilderVisitorException {
public Set<String> visitPost( Select node, Set<String> v ) { currentIndex.pop(); return v; } public Set<String> visitPost( Remap node, Set<String> v ) throws QueryBuilderVisitorException {
public Set<String> visitPost( Select node, Set<String> v ) { currentIndex.pop(); return v; } public Set<String> visitPost( Remap node, Set<String> v ) throws QueryBuilderVisitorException {
public Set<String> visitPost( Select node, Set<String> v ) { currentIndex.pop(); return v; } public Set<String> visitPost( Remap node, Set<String> v ) throws QueryBuilderVisitorException {
public DocumentIterator visitPost( final Select node, final DocumentIterator subNode ) { curr.pop(); return subNode; }
public DocumentIterator visitPost( final Select node, final DocumentIterator subNode ) { curr.pop(); return subNode; }
public DocumentIterator visitPost( final Select node, final DocumentIterator subNode ) { curr.pop(); return subNode; }
public DocumentIterator visitPost( final Select node, final DocumentIterator subNode ) { curr.pop(); return subNode; }
toBeFixed = stack.pop(); jumpLength = toBeFixed.jumpLength(); if (toBeFixed.jumpLeft != parentExitNode) break; if (toBeFixed.jumpRight != parentExitNode) break; toBeFixed.jumpRight = otherNode; stack.pop(); toBeFixed = stack.pop(); if (toBeFixed.jumpRight != exitNode) break; jumpLength = toBeFixed.jumpLength();
toBeFixed = stack.pop(); jumpLength = toBeFixed.jumpLength(); if (toBeFixed.jumpRight != parentExitNode) break; if (toBeFixed.jumpLeft != parentExitNode) break; toBeFixed.jumpLeft = otherNode; stack.pop(); toBeFixed = stack.pop(); if (toBeFixed.jumpLeft != exitNode) break; jumpLength = toBeFixed.jumpLength();
toBeFixed = stack.pop(); jumpLength = toBeFixed.jumpLength(); if (toBeFixed.jumpLeft != exitNode) break; if (toBeFixed.jumpRight != exitNode || jumpLength >= leafNameLength) break; toBeFixed.jumpRight = internal; stack.pop(); toBeFixed = stack.pop(); jumpLength = toBeFixed.jumpLength(); while(exitNode.isInternal() && toBeFixed.jumpRight != exitNode) exitNode = ((InternalNode<U>)exitNode).jumpRight;
toBeFixed = stack.pop(); jumpLength = toBeFixed.jumpLength(); if (toBeFixed.jumpRight != exitNode) break; if (toBeFixed.jumpLeft != exitNode || jumpLength >= leafNameLength) break; toBeFixed.jumpLeft = internal; stack.pop(); toBeFixed = stack.pop(); jumpLength = toBeFixed.jumpLength(); while(exitNode.isInternal() && toBeFixed.jumpLeft != exitNode) exitNode = ((InternalNode<U>)exitNode).jumpLeft;
/** Returns the grandparent of the exit node of a given bit vector. * * @param v a bit vector. * @param stack as filled by {@link #getParentExitNode(LongArrayBitVector, long[], ObjectArrayList)}. */ public InternalNode<T> getGrandParentExitNode(final LongArrayBitVector v, final long[] state, final ObjectArrayList<InternalNode<T>> stack) { if (DDEBUG) System.err.println("getParentGrandExitNode(" + v + ", " + stack + ")"); final InternalNode<T> parentExitNode = stack.pop(); // If the parent of the exit node is the root, there is no grandparent. if (parentExitNode == root) return null; final long startingPoint = stack.top().extentLength; // We're lucky: the second element on the stack is the grandparent of the exit node. if (startingPoint == parentExitNode.nameLength - 1) return stack.top(); // TODO check -1 final int stackSize = stack.size(); // Unless there are mistakes, this is really the grandparent of the exit node. final InternalNode<T> grandParentExitNode = fatBinarySearch(v, state, stack, false, startingPoint, parentExitNode.nameLength); // TODO check -1 if (grandParentExitNode.left == parentExitNode || grandParentExitNode.right == parentExitNode) return grandParentExitNode; // Something went wrong with the last search. We can just, at this point, restart in exact mode. stack.size(stackSize); return fatBinarySearch(v, state, stack, true, startingPoint, parentExitNode.nameLength); // TODO check -1 }