code: protected void fireFaxEvent(FaxClientActionEventID id,FaxJob faxJob)
      {
          //create new fax event
          FaxClientActionEvent event=new FaxClientActionEvent(id,faxJob);
  
          //get listeners
          FaxClientActionEventListener[] listeners=null;
          synchronized(this.faxClientActionEventListeners)
          {
              listeners=this.faxClientActionEventListeners.toArray(new FaxClientActionEventListener[this.faxClientActionEventListeners.size()]);
          }
          
          int amount=listeners.length;
          FaxClientActionEventListener listener=null;
          for(int index=0;index<amount;index++)
          {
              //get next element
              listener=listeners[index];
              
              //fire event
              if(listener!=null)
              {
                  switch(id)
                  {
                      case CREATE_FAX_JOB:
                          listener.faxJobCreated(event);
                          break;
                      case SUBMIT_FAX_JOB:
                          listener.faxJobSubmitted(event);
                          break;
                      case SUSPEND_FAX_JOB:
                          listener.faxJobSuspended(event);
                          break;
                      case RESUME_FAX_JOB:
                          listener.faxJobResumed(event);
                          break;
                      case CANCEL_FAX_JOB:
                          listener.faxJobCancelled(event);
                          break;
                      default:
                          throw new FaxException("Unable to support fax event, for event ID: "+id);
                  }
              }
          }
      }
docs: This function fires a new fax event.
  
  @param   id
  The fax event ID
  @param   faxJob
  The fax job