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

org.dellroad.querystream.jpa.DoubleStream Maven / Gradle / Ivy


/*
 * Copyright (C) 2018 Archie L. Cobbs. All rights reserved.
 */

package org.dellroad.querystream.jpa;

import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Consumer;
import java.util.function.Function;

import javax.persistence.FlushModeType;
import javax.persistence.LockModeType;
import javax.persistence.Parameter;
import javax.persistence.TemporalType;
import javax.persistence.criteria.Expression;
import javax.persistence.criteria.Order;
import javax.persistence.criteria.Root;
import javax.persistence.criteria.Selection;

/**
 * {@link SearchStream} containing {@link Double} values.
 */
public interface DoubleStream extends ExprStream> {

// Aggregation

    DoubleValue average();

    DoubleValue max();

    DoubleValue min();

    DoubleValue sum();

// Narrowing overrides (SearchStream)

    @Override
    DoubleStream distinct();

    @Override
    DoubleStream orderBy(Ref> ref, boolean asc);

    @Override
    DoubleStream orderBy(Function, ? extends Expression> orderExprFunction, boolean asc);

    @Override
    DoubleStream orderBy(Order... orders);

    @Override
    DoubleStream orderByMulti(Function, ? extends List> orderListFunction);

    @Override
    DoubleStream thenOrderBy(Ref> ref, boolean asc);

    @Override
    DoubleStream thenOrderBy(Order... orders);

    @Override
    DoubleStream thenOrderBy(Function, ? extends Expression> orderExprFunction, boolean asc);

    @Override
    DoubleStream groupBy(Ref> ref);

    @Override
    DoubleStream groupBy(Function, ? extends Expression> groupFunction);

    @Override
    DoubleStream groupByMulti(Function, ? extends List>> groupFunction);

    @Override
    DoubleStream having(Function, ? extends Expression> havingFunction);

    @Override
    DoubleValue findAny();

    @Override
    DoubleValue findFirst();

    @Override
    DoubleValue findSingle();

// Narrowing overrides (QueryStream)

    @Override
    DoubleStream bind(Ref> ref);

    @Override
    DoubleStream peek(Consumer> peeker);

    @Override
    > DoubleStream bind(
      Ref ref, Function, ? extends S2> refFunction);

    @Override
     DoubleStream addRoot(Ref> ref, Class type);

    @Override
    DoubleStream filter(Function, ? extends Expression> predicateBuilder);

    @Override
    DoubleStream limit(int maxSize);

    @Override
    DoubleStream skip(int num);

    @Override
    DoubleStream withFlushMode(FlushModeType flushMode);

    @Override
    DoubleStream withLockMode(LockModeType lockMode);

    @Override
    DoubleStream withHint(String name, Object value);

    @Override
    DoubleStream withHints(Map hints);

    @Override
     DoubleStream withParam(Parameter parameter, T value);

    @Override
    DoubleStream withParam(Parameter parameter, Date value, TemporalType temporalType);

    @Override
    DoubleStream withParam(Parameter parameter, Calendar value, TemporalType temporalType);

    @Override
    DoubleStream withParams(Set> params);

    @Override
    DoubleStream withLoadGraph(String name);

    @Override
    DoubleStream withFetchGraph(String name);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy