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

org.dellroad.querystream.jpa.DoubleValue 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.Map;
import java.util.function.Consumer;
import java.util.function.Function;

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

/**
 * A double {@link ExprValue}.
 */
public interface DoubleValue extends ExprValue>, DoubleStream {

    /**
     * Build and evaluate a JPA query based on this instance and return the single non-NULL result.
     *
     * 

* This variant of {@link #value} is useful when it is known that NULL won't be returned. * * @return result of executed query * @throws NoResultException if the query returns NULL */ default double doubleValue() { final Double value = this.value(); if (value == null) throw new NoResultException("NULL value returned from query"); return (double)value; } // Narrowing overrides (QueryStream) @Override DoubleValue bind(Ref> ref); @Override DoubleValue peek(Consumer> peeker); @Override > DoubleValue bind( Ref ref, Function, ? extends S2> refFunction); @Override DoubleValue filter(Function, ? extends Expression> predicateBuilder); @Override DoubleValue withFlushMode(FlushModeType flushMode); @Override DoubleValue withLockMode(LockModeType lockMode); @Override DoubleValue withHint(String name, Object value); @Override DoubleValue withHints(Map hints); @Override DoubleValue withParam(Parameter parameter, T value); @Override DoubleValue withParam(Parameter parameter, Date value, TemporalType temporalType); @Override DoubleValue withParam(Parameter parameter, Calendar value, TemporalType temporalType); @Override DoubleValue withParams(Iterable> params); @Override DoubleValue withLoadGraph(String name); @Override DoubleValue withFetchGraph(String name); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy