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

com.linkedin.dagli.util.function.LongComposedFunction4 Maven / Gradle / Ivy

Go to download

DAG-oriented machine learning framework for bug-resistant, readable, efficient, maintainable and trivially deployable models in Java and other JVM languages

There is a newer version: 15.0.0-beta9
Show newest version
// AUTOGENERATED CODE.  DO NOT MODIFY DIRECTLY!  Instead, please modify the util/function/ComposedFunction.ftl file.
// See the README in the module's src/template directory for details.
package com.linkedin.dagli.util.function;

import java.util.Objects;


/**
 * A function class implementing {@link LongFunction4.Serializable} that composes
 * {@link LongFunction4} with a {@link Function1}.  The function is only actually serializable
 * if its constituent composed functions are serializable, of course.
 */
class LongComposedFunction4 implements LongFunction4.Serializable {
  private static final long serialVersionUID = 1;

  private final Function4 _first;
  private final LongFunction1 _andThen;

  /**
   * Creates a new instance that composes two functions, i.e. {@code andThen(first(inputs))}.
   *
   * @param first the first function to be called in the composition
   * @param andThen the second function to be called in the composition, accepting the {@code first} functions result
   *                as input
   */
  LongComposedFunction4(Function4 first, LongFunction1 andThen) {
    _first = first;
    _andThen = andThen;
  }

  @Override
  @SuppressWarnings("unchecked")
  public LongComposedFunction4 safelySerializable() {
    return new LongComposedFunction4<>(((Function4.Serializable) _first).safelySerializable(),
        ((LongFunction1.Serializable) _andThen).safelySerializable());
  }

  @Override
  public long apply(A value1, B value2, C value3, D value4) {
    return _andThen.apply(_first.apply(value1, value2, value3, value4));
  }

  @Override
  public int hashCode() {
    return Objects.hash(LongComposedFunction4.class, _first, _andThen);
  }

  @Override
  public boolean equals(Object obj) {
    if (obj instanceof LongComposedFunction4) {
      return this._first.equals(((LongComposedFunction4) obj)._first)
          && this._andThen.equals(((LongComposedFunction4) obj)._andThen);
    }
    return false;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy