void handleGet(Object value, 
                 MatchSpaceKey msg, 
                 EvalCache cache,
                 Object contextValue,
                 SearchResults result) 
      throws MatchingException, BadMessageFormatMatchingException 
  {
    if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
      tc.entry(this,
               cclass, 
               "handleGet", 
               new Object[] {value,msg,cache,contextValue,result});
    
    // Call the handleGet() method in the parent class but 
    // provide a context and we may need to call it multiple times
    if (value != null && value instanceof SetValEvaluationContext)
    {
      // The "value" we get back is a list of wrapped string values and
      // DOM nodes that we need to process individually
      ArrayList nodeList = ((SetValEvaluationContext)value).getWrappedNodeList();
      
      // Iterate over the nodes that were passed into us
      Iterator iter = nodeList.iterator();

      while(iter.hasNext())
      {
        WrappedNodeResults wrappedNode = (WrappedNodeResults)iter.next();
        
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
          tc.debug(this,cclass, "handleGet", "Processing node: " + wrappedNode); 
        
        // Need to be careful here, we propagate a Number, but the
        // context for subsequent operations is the parent node.
        // We retrieve a list of numbers each of which are processed
        // in turn
        ArrayList numberList = wrappedNode.getNumberList(id.getName());
        if(numberList != null)
        {
          Iterator iterNumber= numberList.iterator();
          
          while(iterNumber.hasNext())
          {
            Number num = (Number)iterNumber.next();

            // Need to pass in an XPathEvaluationContext
            SetValEvaluationContext xpEval = new SetValEvaluationContext(wrappedNode);
      
            super.handleGet(num, msg, cache, xpEval, result);
          } // eof while             
        } // eof if numberList not null        
      } // eof iteration over nodes
    } // value not null
    
    if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
      tc.exit(this,cclass, "handleGet");    
  }
void handleGet ( Object value , MatchSpaceKey msg , EvalCache cache , Object contextValue , SearchResults result ) throws MatchingException , BadMessageFormatMatchingException { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) tc . entry ( this , cclass , "handleGet" , new Object [ ] { value , msg , cache , contextValue , result } ) ; if ( value != null && value instanceof SetValEvaluationContext ) { ArrayList nodeList = ( ( SetValEvaluationContext ) value ) . getWrappedNodeList ( ) ; Iterator iter = nodeList . iterator ( ) ; while ( iter . hasNext ( ) ) { WrappedNodeResults wrappedNode = ( WrappedNodeResults ) iter . next ( ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) tc . debug ( this , cclass , "handleGet" , "Processing node: " + wrappedNode ) ; ArrayList numberList = wrappedNode . getNumberList ( id . getName ( ) ) ; if ( numberList != null ) { Iterator iterNumber = numberList . iterator ( ) ; while ( iterNumber . hasNext ( ) ) { Number num = ( Number ) iterNumber . next ( ) ; SetValEvaluationContext xpEval = new SetValEvaluationContext ( wrappedNode ) ; super . handleGet ( num , msg , cache , xpEval , result ) ; } } } } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) tc . exit ( this , cclass , "handleGet" ) ; }
/* (non-Javadoc)
@see com.ibm.ws.sib.matchspace.impl.NumericMatcher#handleGet(java.lang.Object, com.ibm.ws.sib.matchspace.MatchSpaceKey, com.ibm.ws.sib.matchspace.EvalCache, java.lang.Object, com.ibm.ws.sib.matchspace.SearchResults)