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

com.vaadin.server.SerializablePredicate Maven / Gradle / Ivy

There is a newer version: 8.27.3
Show newest version
/*
 * Copyright (C) 2000-2024 Vaadin Ltd
 *
 * This program is available under Vaadin Commercial License and Service Terms.
 *
 * See  for the full
 * license.
 */
package com.vaadin.server;

import java.io.Serializable;
import java.util.Objects;
import java.util.function.Predicate;

/**
 * A {@link Predicate} that is also {@link Serializable}.
 *
 * @author Vaadin Ltd
 * @since 8.0
 * @param 
 *            the type of the input to the predicate
 *
 */
public interface SerializablePredicate extends Predicate, Serializable {
    /**
     * Returns a composed predicate that represents a short-circuiting logical
     * AND of this predicate and another. When evaluating the composed
     * predicate, if this predicate is {@code false}, then the {@code other}
     * predicate is not evaluated.
     *
     * 

* Any exceptions thrown during evaluation of either predicate are relayed * to the caller; if evaluation of this predicate throws an exception, the * {@code other} predicate will not be evaluated. * * @param other * a predicate that will be logically-ANDed with this predicate * @return a composed predicate that represents the short-circuiting logical * AND of this predicate and the {@code other} predicate * @throws NullPointerException * if other is null * @since 8.5 */ default SerializablePredicate and( SerializablePredicate other) { Objects.requireNonNull(other); return t -> test(t) && other.test(t); } /** * Returns a predicate that represents the logical negation of this * predicate. * * @return a predicate that represents the logical negation of this * predicate * @since 8.5 */ default SerializablePredicate negate() { return t -> !test(t); } /** * Returns a composed predicate that represents a short-circuiting logical * OR of this predicate and another. When evaluating the composed predicate, * if this predicate is {@code true}, then the {@code other} predicate is * not evaluated. * *

* Any exceptions thrown during evaluation of either predicate are relayed * to the caller; if evaluation of this predicate throws an exception, the * {@code other} predicate will not be evaluated. * * @param other * a predicate that will be logically-ORed with this predicate * @return a composed predicate that represents the short-circuiting logical * OR of this predicate and the {@code other} predicate * @throws NullPointerException * if other is null * @since 8.5 */ default SerializablePredicate or( SerializablePredicate other) { Objects.requireNonNull(other); return t -> test(t) || other.test(t); } /** * Returns a predicate that tests if two arguments are equal according to * {@link Objects#equals(Object, Object)}. * * @param * the type of arguments to the predicate * @param targetRef * the object reference with which to compare for equality, which * may be {@code null} * @return a predicate that tests if two arguments are equal according to * {@link Objects#equals(Object, Object)} * @since 8.5 */ static SerializablePredicate isEqual(Serializable targetRef) { return (null == targetRef) ? Objects::isNull : object -> targetRef.equals(object); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy