
net.cassite.daf4j.stream.QueryNumStreamBase Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of daf4j-api Show documentation
Show all versions of daf4j-api Show documentation
A library provides facade api for data accessing.
The newest version!
package net.cassite.daf4j.stream;
import net.cassite.daf4j.*;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* QueryIntStream,QueryLongStream,QueryDoubleStream的基类
*
* @param 实体类型
* @param 元素类型(Integer,Long,Double)
* @param Stream类型
*/
public abstract class QueryNumStreamBase, T extends QueryNumStreamBase> extends QueryStreamBase> implements Iterable {
protected final DataComparable data;
protected QueryNumStreamBase(E entity, DataAccess dataAccess, AndOr andOr, QueryParameter parameter, DataComparable data) {
super(entity, dataAccess);
this.data = data;
this.andOr = andOr;
this.parameter = parameter;
}
/**
* 执行求平均值操作
*
* @return double类型的求平均值结果
*/
@SuppressWarnings("unchecked")
public double average() {
return DataUtils.executeAvg(entity, andOr, parameter, (DataComparable extends Number>) data, dataAccess);
}
/**
* 对Stream进行排序
* 若实体未实现SortedEntity,那么将使用构造时传入的DataComparable作排序依据.
* 若实现了SortedEntity则仍然以实体规定的排序方式为依据
*
* @return 排序后的Stream
* @see SortedEntity
*/
@Override
@SuppressWarnings("unchecked")
public T sorted() {
try {
return (T) super.sorted();
} catch (UnsupportedOperationException e) {
return (T) sorted(data.asc());
}
}
@Override
public Iterator iterator() {
String alias = "resultData";
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy