All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.cassite.daf4j.stream.QueryIntStream Maven / Gradle / Ivy

package net.cassite.daf4j.stream;

import net.cassite.daf4j.*;

import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
 * 包含整型的结果
 *
 * @param  实体类型
 */
public class QueryIntStream extends QueryStreamBase> implements Iterable {
        private final DataComparable intData;

        protected QueryIntStream(E entity, DataAccess dataAccess, AndOr andOr, QueryParameter parameter, DataComparable intData) {
                super(entity, dataAccess);
                this.andOr = andOr;
                this.parameter = parameter;
                this.intData = intData;
        }

        public long sum() {
                return DataUtils.executeSumLong(entity, andOr, parameter, intData, dataAccess);
        }

        public double average() {
                return DataUtils.executeAvg(entity, andOr, parameter, intData, dataAccess);
        }

        public int max() {
                return DataUtils.executeMaxInt(entity, andOr, parameter, intData, dataAccess);
        }

        public int min() {
                return DataUtils.executeMinInt(entity, andOr, parameter, intData, dataAccess);
        }

        @Override
        public QueryIntStream sorted() {
                try {
                        return super.sorted();
                } catch (UnsupportedOperationException e) {
                        return sorted(intData.asc());
                }
        }


        @Override
        public Iterator iterator() {
                String alias = "resultData";
                List> list = dataAccess.projection(entity, andOr, new QueryParameterWithFocus(parameter, new Focus().focus(intData, alias)));
                return new It(list, alias);
        }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy