org.dellroad.querystream.jpa.PathStream Maven / Gradle / Ivy
/*
* Copyright (C) 2018 Archie L. Cobbs. All rights reserved.
*/
package org.dellroad.querystream.jpa;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import java.util.function.Function;
import javax.persistence.FlushModeType;
import javax.persistence.LockModeType;
import javax.persistence.criteria.Expression;
import javax.persistence.criteria.Order;
import javax.persistence.criteria.Path;
import javax.persistence.criteria.Root;
import javax.persistence.criteria.Selection;
import javax.persistence.metamodel.SingularAttribute;
/**
* {@link SearchStream} containing items representable as {@link Path}s.
*/
public interface PathStream> extends ExprStream {
/**
* Map this stream into a stream whose elements are the result of applying the given narrowing cast.
*
* @param type new, narrower item type
* @param narrower type
* @return recast stream
* @see javax.persistence.criteria.CriteriaBuilder#treat(Path, Class) CriteriaBuilder.treat()
*/
PathStream> cast(Class type);
// Narrowing overrides (SearchStream)
@Override
PathStream distinct();
@Override
PathStream orderBy(Ref, ? extends Expression>> ref, boolean asc);
@Override
PathStream orderBy(SingularAttribute super X, ?> attribute, boolean asc);
@Override
PathStream orderBy(SingularAttribute super X, ?> attribute1, boolean asc1,
SingularAttribute super X, ?> attribute2, boolean asc2);
@Override
PathStream orderBy(SingularAttribute super X, ?> attribute1, boolean asc1,
SingularAttribute super X, ?> attribute2, boolean asc2, SingularAttribute super X, ?> attribute3, boolean asc3);
@Override
PathStream orderBy(Function super S, ? extends Expression>> orderExprFunction, boolean asc);
@Override
PathStream orderBy(Order... orders);
@Override
PathStream orderByMulti(Function super S, ? extends List extends Order>> orderListFunction);
@Override
PathStream thenOrderBy(SingularAttribute super X, ?> attribute, boolean asc);
@Override
PathStream thenOrderBy(Ref, ? extends Expression>> ref, boolean asc);
@Override
PathStream thenOrderBy(Order... orders);
@Override
PathStream thenOrderBy(Function super S, ? extends Expression>> orderExprFunction, boolean asc);
@Override
PathStream groupBy(Ref, ? extends Expression>> ref);
@Override
PathStream groupBy(SingularAttribute super X, ?> attribute);
@Override
PathStream groupBy(Function super S, ? extends Expression>> groupFunction);
@Override
PathStream groupByMulti(Function super S, ? extends List>> groupFunction);
@Override
PathStream having(Function super S, ? extends Expression> havingFunction);
@Override
PathValue findAny();
@Override
PathValue findFirst();
// Narrowing overrides (QueryStream)
@Override
PathStream bind(Ref ref);
@Override
PathStream peek(Consumer super S> peeker);
@Override
> PathStream bind(Ref ref, Function super S, ? extends S2> refFunction);
@Override
PathStream addRoot(Ref> ref, Class type);
@Override
PathStream filter(SingularAttribute super X, Boolean> attribute);
@Override
PathStream filter(Function super S, ? extends Expression> predicateBuilder);
@Override
PathStream limit(int maxSize);
@Override
PathStream skip(int num);
@Override
PathStream withFlushMode(FlushModeType flushMode);
@Override
PathStream withLockMode(LockModeType lockMode);
@Override
PathStream withHint(String name, Object value);
@Override
PathStream withHints(Map hints);
@Override
PathStream withLoadGraph(String name);
@Override
PathStream withFetchGraph(String name);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy