protected boolean matchChildSequence(QName element,int event) throws XNIException {
  if (fCurrentChildDepth >= fCurrentChildSequence.length) {
    int tmpCurrentChildSequence[]=new int[fCurrentChildSequence.length];
    System.arraycopy(fCurrentChildSequence,0,tmpCurrentChildSequence,0,fCurrentChildSequence.length);
    fCurrentChildSequence=new int[fCurrentChildDepth * 2];
    System.arraycopy(tmpCurrentChildSequence,0,fCurrentChildSequence,0,tmpCurrentChildSequence.length);
  }
  if (fIsResolveElement) {
    if (event == XPointerPart.EVENT_ELEMENT_START) {
      fCurrentChildSequence[fCurrentChildDepth]=fCurrentChildPosition;
      fCurrentChildDepth++;
      fCurrentChildPosition=1;
      if ((fCurrentChildDepth <= fFoundDepth) || (fFoundDepth == 0)) {
        if (checkMatch()) {
          fIsElementFound=true;
          fFoundDepth=fCurrentChildDepth;
        }
 else {
          fIsElementFound=false;
          fFoundDepth=0;
        }
      }
    }
 else     if (event == XPointerPart.EVENT_ELEMENT_END) {
      if (fCurrentChildDepth == fFoundDepth) {
        fIsElementFound=true;
      }
 else       if (((fCurrentChildDepth < fFoundDepth) && (fFoundDepth != 0)) || ((fCurrentChildDepth > fFoundDepth) && (fFoundDepth == 0))) {
        fIsElementFound=false;
      }
      fCurrentChildSequence[fCurrentChildDepth]=0;
      fCurrentChildDepth--;
      fCurrentChildPosition=fCurrentChildSequence[fCurrentChildDepth] + 1;
    }
 else     if (event == XPointerPart.EVENT_ELEMENT_EMPTY) {
      fCurrentChildSequence[fCurrentChildDepth]=fCurrentChildPosition;
      fCurrentChildPosition++;
      if (checkMatch()) {
        fWasOnlyEmptyElementFound=!fIsElementFound;
        fIsElementFound=true;
      }
 else {
        fIsElementFound=false;
        fWasOnlyEmptyElementFound=false;
      }
    }
  }
  return fIsElementFound;
}

protected boolean matchChildSequence ( QName element , int event ) throws XNIException { if ( fCurrentChildDepth >= fCurrentChildSequence . length ) { int tmpCurrentChildSequence [ ] = new int [ fCurrentChildSequence . length ] ; System . arraycopy ( fCurrentChildSequence , 0 , tmpCurrentChildSequence , 0 , fCurrentChildSequence . length ) ; fCurrentChildSequence = new int [ fCurrentChildDepth * 2 ] ; System . arraycopy ( tmpCurrentChildSequence , 0 , fCurrentChildSequence , 0 , tmpCurrentChildSequence . length ) ; } if ( fIsResolveElement ) { if ( event == XPointerPart . EVENT_ELEMENT_START ) { fCurrentChildSequence [ fCurrentChildDepth ] = fCurrentChildPosition ; fCurrentChildDepth ++ ; fCurrentChildPosition = 1 ; if ( ( fCurrentChildDepth <= fFoundDepth ) || ( fFoundDepth == 0 ) ) { if ( checkMatch ( ) ) { fIsElementFound = true ; fFoundDepth = fCurrentChildDepth ; } else { fIsElementFound = false ; fFoundDepth = 0 ; } } } else if ( event == XPointerPart . EVENT_ELEMENT_END ) { if ( fCurrentChildDepth == fFoundDepth ) { fIsElementFound = true ; } else if ( ( ( fCurrentChildDepth < fFoundDepth ) && ( fFoundDepth != 0 ) ) || ( ( fCurrentChildDepth > fFoundDepth ) && ( fFoundDepth == 0 ) ) ) { fIsElementFound = false ; } fCurrentChildSequence [ fCurrentChildDepth ] = 0 ; fCurrentChildDepth -- ; fCurrentChildPosition = fCurrentChildSequence [ fCurrentChildDepth ] + 1 ; } else if ( event == XPointerPart . EVENT_ELEMENT_EMPTY ) { fCurrentChildSequence [ fCurrentChildDepth ] = fCurrentChildPosition ; fCurrentChildPosition ++ ; if ( checkMatch ( ) ) { fWasOnlyEmptyElementFound = ! fIsElementFound ; fIsElementFound = true ; } else { fIsElementFound = false ; fWasOnlyEmptyElementFound = false ; } } } return fIsElementFound ; }
matches the current element position in the document tree with the element position specified in the element xpointer scheme .
