@Override
    public boolean equals(Object o) {

        if (this == o) {
            return true;
        }
        if (!(o instanceof SingleInputStream)) {
            return false;
        }

        SingleInputStream that = (SingleInputStream) o;

        if (isFaultStream != that.isFaultStream) {
            return false;
        }
        if (isInnerStream != that.isInnerStream) {
            return false;
        }
        if (windowPosition != that.windowPosition) {
            return false;
        }
        if (streamHandlers != null ? !streamHandlers.equals(that.streamHandlers) : that.streamHandlers != null) {
            return false;
        }
        if (streamId != null ? !streamId.equals(that.streamId) : that.streamId != null) {
            return false;
        }
        if (streamReferenceId != null ? !streamReferenceId.equals(that.streamReferenceId) : that.streamReferenceId !=
                null) {
            return false;
        }

        return true;
    }
Single input stream using only filters and functions
modules/siddhi-query-api/src/main/java/io/siddhi/query/api/execution/query/input/stream/SingleInputStream.java