docs: protected boolean isFirehoseDrainableByClosing(FirehoseFactory firehoseFactory)
    {
      return firehoseFactory instanceof EventReceiverFirehoseFactory
             || (firehoseFactory instanceof TimedShutoffFirehoseFactory
                 && isFirehoseDrainableByClosing(((TimedShutoffFirehoseFactory) firehoseFactory).getDelegateFactory()))
             || (firehoseFactory instanceof ClippedFirehoseFactory
                 && isFirehoseDrainableByClosing(((ClippedFirehoseFactory) firehoseFactory).getDelegate()));
    }