@Override
    public void receive(Event[] events) {
        StreamEvent firstEvent = streamEventFactory.newInstance();
        streamEventConverter.convertEvent(events[0], firstEvent);
        StreamEvent currentEvent = firstEvent;
        for (int i = 1, eventsLength = events.length; i < eventsLength; i++) {
            StreamEvent nextEvent = streamEventFactory.newInstance();
            streamEventConverter.convertEvent(events[i], nextEvent);
            currentEvent.setNext(nextEvent);
            currentEvent = nextEvent;
        }
        if (siddhiDebugger != null) {
            siddhiDebugger.checkBreakPoint(siddhiQueryContext.getName(), SiddhiDebugger.QueryTerminal.IN, firstEvent);
        }
        process(new ComplexEventChunk<StreamEvent>(firstEvent, currentEvent));
    }
Parent implementation for all process stream receivers(Multi/Single/State). Any newly written process stream
receivers should extend this. ProcessStreamReceivers are the entry point to Siddhi queries.
modules/siddhi-core/src/main/java/io/siddhi/core/query/input/ProcessStreamReceiver.java