protected final void init(TableDefinition tableDefinition, RecordTableHandlerCallback recordTableHandlerCallback,
                              SiddhiAppContext siddhiAppContext) {
        this.recordTableHandlerCallback = recordTableHandlerCallback;

        id = siddhiAppContext.getName() + "-" + tableDefinition.getId() + "-" + this.getClass().getName();
        StateFactory<S> stateFactory = init(id, tableDefinition);
        stateHolder = siddhiAppContext.generateStateHolder(
                tableDefinition.getId() + "-" + this.getClass().getName(),
                stateFactory);

    }
RecordTableHandler is an optional handler that can be implemented to do processing on output events before sending
to the AbstractRecordTable.

@param <S> current state
modules/siddhi-core/src/main/java/io/siddhi/core/table/record/RecordTableHandler.java