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

org.helenus.util.function.EBiConsumer Maven / Gradle / Ivy

Go to download

JPA-like syntax for annotating POJO classes for persistence via Cassandra's Java driver - Common Utilities

There is a newer version: 3.0.4
Show newest version
/*
 * Copyright (C) 2015-2015 The Helenus Driver Project Authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.helenus.util.function;

import java.util.function.BiConsumer;

/**
 * The EBiConsumer interface expands on the {@link BiConsumer}
 * interface to provide the ability to throw back exceptions.
 *
 * @copyright 2015-2015 The Helenus Driver Project Authors
 *
 * @author  The Helenus Driver Project Authors
 * @version 1 - May 28, 2015 - paouelle - Creation
 *
 * @param  the type of the first argument to the operation
 * @param  the type of the second argument to the operation
 * @param  the type of exceptions that can be thrown by the operation
 *
 * @since 2.0
 */
@FunctionalInterface
public interface EBiConsumer {
  /**
   * Performs this operation on the given arguments.
   *
   * @author paouelle
   *
   * @param  t the first input argument
   * @param  u the second input argument
   * @throws E if an error occurs
   */
  public void accept(T t, U u) throws E;

  /**
   * Returns a composed {@code EBiConsumer} that performs, in sequence, this
   * operation followed by the {@code after} operation. If performing either
   * operation throws an exception, it is relayed to the caller of the
   * composed operation.  If performing this operation throws an exception,
   * the {@code after} operation will not be performed.
   *
   * @author paouelle
   *
   * @param  after the operation to perform after this operation
   * @return a composed {@code EBiConsumer} that performs in sequence this
   *         operation followed by the {@code after} operation
   * @throws NullPointerException if {@code after} is null
   * @throws E if an error occurs
   */
  public default EBiConsumer andThen(
    EBiConsumer after
  ) throws E {
    org.apache.commons.lang3.Validate.notNull(after, "invalid null after");
    return (l, r) -> {
      accept(l, r);
      after.accept(l, r);
    };
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy