@Override
    public boolean equals(Object o) {

        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        Selector selector = (Selector) o;

        if (selectionList != null ? !selectionList.equals(selector.selectionList) : selector.selectionList != null) {
            return false;
        }
        if (groupByList != null ? !groupByList.equals(selector.groupByList) : selector.groupByList != null) {
            return false;
        }
        if (orderByList != null ? !orderByList.equals(selector.orderByList) : selector.orderByList != null) {
            return false;
        }
        if (havingExpression != null ? !havingExpression.equals(selector.havingExpression) :
                selector.havingExpression != null) {
            return false;
        }
        if (limit != null ? !limit.equals(selector.limit) : selector.limit != null) {
            return false;
        }
        return offset != null ? offset.equals(selector.offset) : selector.offset == null;
    }
Selector selecting query output stream attributes
modules/siddhi-query-api/src/main/java/io/siddhi/query/api/execution/query/selection/Selector.java