final void initSourceHandler(String siddhiAppName, SourceSyncCallback sourceSyncCallback,
                                 StreamDefinition streamDefinition, SiddhiAppContext siddhiAppContext) {
        StateFactory<S> stateFactory = init(siddhiAppName, sourceSyncCallback, streamDefinition, siddhiAppContext);
        id = siddhiAppName + "-" + streamDefinition.getId() + "-" + this.getClass().getName();
        stateHolder = siddhiAppContext.generateStateHolder(
                streamDefinition.getId() + "-" + this.getClass().getName(),
                stateFactory);
    }
SourceHandler is an optional implementable class that wraps {@link InputHandler}.
It will do optional processing to the events before sending the events to the input handler

@param <S> current state for the Source Holder
modules/siddhi-core/src/main/java/io/siddhi/core/stream/input/source/SourceHandler.java