Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Copyright (C) 2011 The Guava 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 com.google.common.base;
import static com.google.common.base.Preconditions.checkNotNull;
import  javax.annotation.Nullable;

Equivalence applied on functional result.

Author(s):
Bob Lee
Since:
10.0
final class FunctionalEquivalence<F, T> extends Equivalence<F>
    implements Serializable {
  private static final long serialVersionUID = 0;
  private final Function<F, ? extends T> function;
  private final Equivalence<T> resultEquivalence;
      Function<F, ? extends T> functionEquivalence<T> resultEquivalence) {
    this. = checkNotNull(function);
    this. = checkNotNull(resultEquivalence);
  }
  @Override protected boolean doEquivalent(F a, F b) {
  }
  @Override protected int doHash(F a) {
    return .hash(.apply(a));
  }
  @Override public boolean equals(@Nullable Object obj) {
    if (obj == this) {
      return true;
    }
    if (obj instanceof FunctionalEquivalence) {
      FunctionalEquivalence<?, ?> that = (FunctionalEquivalence<?, ?>) obj;
      return .equals(that.function)
          && .equals(that.resultEquivalence);
    }
    return false;
  }
  @Override public int hashCode() {
    return Objects.hashCode();
  }
  @Override public String toString() {
    return  + ".onResultOf(" +  + ")";
  }
New to GrepCode? Check out our FAQ X