@Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof StreamEvent)) {
            return false;
        }

        StreamEvent event = (StreamEvent) o;

        if (type != event.type) {
            return false;
        }
        if (timestamp != event.timestamp) {
            return false;
        }
        // Probably incorrect - comparing Object[] arrays with Arrays.equals
        if (!Arrays.equals(beforeWindowData, event.beforeWindowData)) {
            return false;
        }
        // Probably incorrect - comparing Object[] arrays with Arrays.equals
        if (!Arrays.equals(onAfterWindowData, event.onAfterWindowData)) {
            return false;
        }
        // Probably incorrect - comparing Object[] arrays with Arrays.equals
        return Arrays.equals(outputData, event.outputData);

    }
@param position int array of 4 elements
                position[0] and position[1] are discarded
                position[2]-BeforeWindowData or OutputData or AfterWindowData, position[3]- which attribute
@return attribute
modules/siddhi-core/src/main/java/io/siddhi/core/event/stream/StreamEvent.java