@Override
    public boolean hasNext() {

        // first all items of the second operand are stored in the set.
        while (mOp2.hasNext()) {
            if (getNode().getDataKey() < 0) { // only nodes are
                // allowed
                throw new XPathError(ErrorType.XPTY0004);
            }
            mDupSet.add(getNode().getDataKey());
        }

        while (mOp1.hasNext()) {
            if (getNode().getDataKey() < 0) { // only nodes are
                // allowed
                throw new XPathError(ErrorType.XPTY0004);
            }

            // return true, if node is not already in the set, which means, that
            // it is
            // not also an item of the result set of the second operand
            // sequence.
            if (mDupSet.add(getNode().getDataKey())) {
                return true;
            }
        }

        return false;
    }
@ Override public boolean hasNext ( ) { while ( mOp2 . hasNext ( ) ) { if ( getNode ( ) . getDataKey ( ) < 0 ) { throw new XPathError ( ErrorType . XPTY0004 ) ; } mDupSet . add ( getNode ( ) . getDataKey ( ) ) ; } while ( mOp1 . hasNext ( ) ) { if ( getNode ( ) . getDataKey ( ) < 0 ) { throw new XPathError ( ErrorType . XPTY0004 ) ; } if ( mDupSet . add ( getNode ( ) . getDataKey ( ) ) ) { return true ; } } return false ; }
{@inheritDoc}