@Override
    public int hashCode() {
        int result = (int) (timestamp ^ (timestamp >>> 32));
        result = 31 * result + (beforeWindowData != null ? Arrays.hashCode(beforeWindowData) : 0);
        result = 31 * result + (onAfterWindowData != null ? Arrays.hashCode(onAfterWindowData) : 0);
        result = 31 * result + (outputData != null ? Arrays.hashCode(outputData) : 0);
        result = 31 * result + type.hashCode();
        return result;
    }
@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