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

net.cassite.daf4j.stream.QueryDoubleStream 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 QueryDoubleStream extends QueryStreamBase> implements Iterable {
        private final DataComparable doubleData;

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

        public double sum() {
                return DataUtils.executeSumDouble(entity, andOr, parameter, doubleData, dataAccess);
        }

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

        public double max() {
                return DataUtils.executeMaxDouble(entity, andOr, parameter, doubleData, dataAccess);
        }

        public double min() {
                return DataUtils.executeMinDouble(entity, andOr, parameter, doubleData, dataAccess);
        }

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


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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy