class InfoProviderFactory {

    public static ConnectionMonitor.InfoProvider forSignal(final Signal<?> signal) {
        final String correlationId = extractCorrelationId(signal.getDittoHeaders());
        final Instant timestamp = Instant.now();
        final ThingId thingId = extractThingId(signal);
        final Supplier<String> payloadSupplier = supplyPayloadFromSignal(signal);

        return new ImmutableInfoProvider(correlationId, timestamp, thingId, signal.getDittoHeaders(), payloadSupplier,
                false);
    }

    private  InfoProviderFactory();

}