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

org.dellroad.querystream.jpa.BooleanValue 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.NoResultException;
import jakarta.persistence.Parameter;
import jakarta.persistence.TemporalType;
import jakarta.persistence.criteria.Expression;

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

/**
 * A boolean {@link ExprValue}.
 */
public interface BooleanValue extends ExprValue> {

    /**
     * Invert this instance.
     *
     * @return inverse value
     */
    BooleanValue not();

    /**
     * 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 boolean booleanValue() { final Boolean value = this.value(); if (value == null) throw new NoResultException("NULL value returned from query"); return (boolean)value; } // Narrowing overrides (QueryStream) @Override BooleanValue bind(Ref> ref); @Override BooleanValue peek(Consumer> peeker); @Override BooleanValue filter(Function, ? extends Expression> predicateBuilder); @Override BooleanValue withFlushMode(FlushModeType flushMode); @Override BooleanValue withLockMode(LockModeType lockMode); @Override BooleanValue withHint(String name, Object value); @Override BooleanValue withHints(Map hints); @Override BooleanValue withParam(Parameter parameter, T value); @Override BooleanValue withParam(Parameter parameter, Date value, TemporalType temporalType); @Override BooleanValue withParam(Parameter parameter, Calendar value, TemporalType temporalType); @Override BooleanValue withParams(Iterable> params); @Override BooleanValue withLoadGraph(String name); @Override BooleanValue withFetchGraph(String name); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy