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

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

The newest version!

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

package org.dellroad.querystream.jpa;

import jakarta.persistence.FlushModeType;
import jakarta.persistence.LockModeType;
import jakarta.persistence.Parameter;
import jakarta.persistence.TemporalType;
import jakarta.persistence.criteria.Expression;
import jakarta.persistence.criteria.From;
import jakarta.persistence.criteria.JoinType;
import jakarta.persistence.criteria.Order;
import jakarta.persistence.criteria.Root;
import jakarta.persistence.criteria.Selection;
import jakarta.persistence.metamodel.PluralAttribute;
import jakarta.persistence.metamodel.SingularAttribute;

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

/**
 * {@link SearchStream} containing items representable as {@link From}s.
 */
public interface FromStream> extends PathStream {

// Narrowing overrides (PathStream)

    // can't do this because there's no method CriteriaBuilder.treat(From, Class)
    // https://github.com/jakartaee/persistence/issues/190
    //@Override
    // FromStream> cast(Class type);

// Narrowing overrides (SearchStream)

    @Override
    FromStream distinct();

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

    @Override
    FromStream orderBy(SingularAttribute attribute, boolean asc);

    @Override
    FromStream orderBy(SingularAttribute attribute1, boolean asc1,
      SingularAttribute attribute2, boolean asc2);

    @Override
    FromStream orderBy(SingularAttribute attribute1, boolean asc1,
      SingularAttribute attribute2, boolean asc2, SingularAttribute attribute3, boolean asc3);

    @Override
    FromStream orderBy(Function> orderExprFunction, boolean asc);

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

    @Override
    FromStream orderByMulti(Function> orderListFunction);

    @Override
    FromStream thenOrderBy(SingularAttribute attribute, boolean asc);

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

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

    @Override
    FromStream thenOrderBy(Function> orderExprFunction, boolean asc);

    @Override
    FromStream groupBy(Ref> ref);

    @Override
    FromStream groupBy(SingularAttribute attribute);

    @Override
    FromStream groupBy(Function> groupFunction);

    @Override
    FromStream groupByMulti(Function>> groupFunction);

    @Override
    FromStream having(Function> havingFunction);

    @Override
    FromValue findAny();

    @Override
    FromValue findFirst();

    @Override
    FromValue findSingle();

    @Override
    FromStream fetch(SingularAttribute attribute);

    @Override
    FromStream fetch(SingularAttribute attribute, JoinType joinType);

    @Override
    FromStream fetch(PluralAttribute attribute);

    @Override
    FromStream fetch(PluralAttribute attribute, JoinType joinType);

// Narrowing overrides (QueryStream)

    @Override
    FromStream bind(Ref ref);

    @Override
    FromStream peek(Consumer peeker);

    @Override
    > FromStream bind(Ref ref, Function refFunction);

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

    @Override
    FromStream filter(SingularAttribute attribute);

    @Override
    FromStream filter(Function> predicateBuilder);

    @Override
    FromStream limit(int maxSize);

    @Override
    FromStream skip(int num);

    @Override
    FromStream withFlushMode(FlushModeType flushMode);

    @Override
    FromStream withLockMode(LockModeType lockMode);

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

    @Override
    FromStream withHints(Map hints);

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

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

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

    @Override
    FromStream withParams(Iterable> params);

    @Override
    FromStream withLoadGraph(String name);

    @Override
    FromStream withFetchGraph(String name);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy