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

com.linkedin.dagli.util.function.DoubleDefaultOnNullArgument2 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/DefaultOnNullArgument.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 DoubleFunction2.Serializable that returns 0 if any of
 * the function's inputs are null.
 */
class DoubleDefaultOnNullArgument2 implements DoubleFunction2.Serializable {
  private static final long serialVersionUID = 1;
  private static final int CLASS_HASH = DoubleDefaultOnNullArgument2.class.hashCode();
  private final DoubleFunction2 _wrapped;

  DoubleDefaultOnNullArgument2(DoubleFunction2 wrapped) {
    // stacking this wrapper multiple times should be idempotent:
    if (wrapped instanceof DoubleDefaultOnNullArgument2) {
      _wrapped = ((DoubleDefaultOnNullArgument2) wrapped)._wrapped;
    } else {
      _wrapped = Objects.requireNonNull(wrapped);
    }
  }

  @Override
  public DoubleDefaultOnNullArgument2 safelySerializable() {
    return new DoubleDefaultOnNullArgument2<>(((DoubleFunction2.Serializable) _wrapped).safelySerializable());
  }

  @Override
  public double apply(A value1, B value2) {
    if (value1 == null || value2 == null) {
      return 0;
    }
    return _wrapped.apply(value1, value2);
  }

  @Override
  public int hashCode() {
    return CLASS_HASH + _wrapped.hashCode();
  }

  @Override
  public boolean equals(Object obj) {
    if (obj instanceof DoubleDefaultOnNullArgument2) {
      return this._wrapped.equals(((DoubleDefaultOnNullArgument2) obj)._wrapped);
    }
    return false;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy