public void instanceProduced(InstanceEvent e) {
    
    Object source = e.getSource();
    if (source instanceof InstanceProducer) { 
      try {
	InstanceProducer a = (InstanceProducer) source;
	switch (e.getID()) {
	case InstanceEvent.FORMAT_AVAILABLE:
	  if (b_Debug) {
	    System.err.println(this.getClass().getName()
			+ "::firstInstanceProduced() - Format available");
	  }
	  inputFormat(a.outputFormat());
	  break;
	case InstanceEvent.INSTANCE_AVAILABLE:
	  if (b_Debug) {
	    System.err.println(this.getClass().getName()
			+ "::firstInstanceProduced() - Instance available");
	  }
	  input(a.outputPeek());
	  break;
	case InstanceEvent.BATCH_FINISHED:
	  if (b_Debug) {
	    System.err.println(this.getClass().getName()
			+ "::firstInstanceProduced() - End of instance batch");
	  }
	  batchFinished();
	  b_FirstInputFinished = true;
	  break;
	default:
	  System.err.println(this.getClass().getName()
	       + "::firstInstanceProduced() - unknown event type");
	  break;
	}
      } catch (Exception ex) {
	System.err.println(ex.getMessage());
      }
    } else {
      System.err.println(this.getClass().getName()
	     + "::firstInstanceProduced() - Unknown source object type");
    }
  }