code: public Object deliverMoreNodes(boolean parsemore)
    {
      // If parsing is already done, we can immediately say so
      if(fNoMoreEvents)
        return Boolean.FALSE;
  
      try 
      {
        Object result =
          fCoroutineManager.co_resume(parsemore?Boolean.TRUE:Boolean.FALSE,
                                      fControllerCoroutineID, fSourceCoroutineID);
        if(result==Boolean.FALSE)
          fCoroutineManager.co_exit(fControllerCoroutineID);
  
        return result;
      }
        
      // SHOULD NEVER OCCUR, since the coroutine number and coroutine manager
      // are those previously established for this IncrementalSAXSource_Filter...
      // So I'm just going to return it as a parsing exception, for now.
      catch(NoSuchMethodException e)
        {
          return e;
        }
    }
docs: deliverMoreNodes() is a simple API which tells the coroutine
  parser that we need more nodes.  This is intended to be called
  from one of our partner routines, and serves to encapsulate the
  details of how incremental parsing has been achieved.
  
  @param parsemore If true, tells the incremental filter to generate
  another chunk of output. If false, tells the filter that we're
  satisfied and it can terminate parsing of this document.
  
  @return Boolean.TRUE if there may be more events available by invoking
  deliverMoreNodes() again. Boolean.FALSE if parsing has run to completion (or been
  terminated by deliverMoreNodes(false). Or an exception object if something
  malfunctioned. %REVIEW% We _could_ actually throw the exception, but
  that would require runinng deliverMoreNodes() in a try/catch... and for many
  applications, exception will be simply be treated as "not TRUE" in
  any case.