@Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        SnapshotableStreamEventQueue that = (SnapshotableStreamEventQueue) o;

        if (operationChangeLogThreshold != that.operationChangeLogThreshold) {
            return false;
        }
        if (operationChangeLogSize != that.operationChangeLogSize) {
            return false;
        }
        if (forceFullSnapshot != that.forceFullSnapshot) {
            return false;
        }
        if (isOperationLogEnabled != that.isOperationLogEnabled) {
            return false;
        }
        if (eventIndex != that.eventIndex) {
            return false;
        }
        if (first != null ? !first.equals(that.first) : that.first != null) {
            return false;
        }
        return operationChangeLog != null ? operationChangeLog.equals(that.operationChangeLog) :
                that.operationChangeLog == null;
    }
Returns the next element in the iteration.

@return the next element in the iteration.
@throws NoSuchElementException iteration has no more elements.
modules/siddhi-core/src/main/java/io/siddhi/core/event/stream/holder/SnapshotableStreamEventQueue.java