final class com.google.common.base.FunctionalEquivalence<F, T> extends com.google.common.base.Equivalence<F> implements java.io.Serializable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.google.common.base.FunctionalEquivalence
super_class: com.google.common.base.Equivalence
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private final com.google.common.base.Function<F, ? extends T> function;
descriptor: Lcom/google/common/base/Function;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/google/common/base/Function<TF;+TT;>;
private final com.google.common.base.Equivalence<T> resultEquivalence;
descriptor: Lcom/google/common/base/Equivalence;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/google/common/base/Equivalence<TT;>;
void <init>(com.google.common.base.Function<F, ? extends T>, com.google.common.base.Equivalence<T>);
descriptor: (Lcom/google/common/base/Function;Lcom/google/common/base/Equivalence;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial com.google.common.base.Equivalence.<init>:()V
1: aload 0
aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.google.common.base.Function
putfield com.google.common.base.FunctionalEquivalence.function:Lcom/google/common/base/Function;
2: aload 0
aload 2
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.google.common.base.Equivalence
putfield com.google.common.base.FunctionalEquivalence.resultEquivalence:Lcom/google/common/base/Equivalence;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/base/FunctionalEquivalence<TF;TT;>;
0 4 1 function Lcom/google/common/base/Function<TF;+TT;>;
0 4 2 resultEquivalence Lcom/google/common/base/Equivalence<TT;>;
Signature: (Lcom/google/common/base/Function<TF;+TT;>;Lcom/google/common/base/Equivalence<TT;>;)V
MethodParameters:
Name Flags
function
resultEquivalence
protected boolean doEquivalent(F, );
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.base.FunctionalEquivalence.resultEquivalence:Lcom/google/common/base/Equivalence;
aload 0
getfield com.google.common.base.FunctionalEquivalence.function:Lcom/google/common/base/Function;
aload 1
invokeinterface com.google.common.base.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
aload 0
getfield com.google.common.base.FunctionalEquivalence.function:Lcom/google/common/base/Function;
aload 2
invokeinterface com.google.common.base.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.google.common.base.Equivalence.equivalent:(Ljava/lang/Object;Ljava/lang/Object;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/base/FunctionalEquivalence<TF;TT;>;
0 1 1 a TF;
0 1 2 b TF;
Signature: (TF;TF;)Z
MethodParameters:
Name Flags
a
b
protected int doHash();
descriptor: (Ljava/lang/Object;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.base.FunctionalEquivalence.resultEquivalence:Lcom/google/common/base/Equivalence;
aload 0
getfield com.google.common.base.FunctionalEquivalence.function:Lcom/google/common/base/Function;
aload 1
invokeinterface com.google.common.base.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.google.common.base.Equivalence.hash:(Ljava/lang/Object;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/base/FunctionalEquivalence<TF;TT;>;
0 1 1 a TF;
Signature: (TF;)I
MethodParameters:
Name Flags
a
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof com.google.common.base.FunctionalEquivalence
ifeq 6
3: aload 1
checkcast com.google.common.base.FunctionalEquivalence
astore 2
start local 2 4: aload 0
getfield com.google.common.base.FunctionalEquivalence.function:Lcom/google/common/base/Function;
aload 2
getfield com.google.common.base.FunctionalEquivalence.function:Lcom/google/common/base/Function;
invokeinterface com.google.common.base.Function.equals:(Ljava/lang/Object;)Z
ifeq 5
aload 0
getfield com.google.common.base.FunctionalEquivalence.resultEquivalence:Lcom/google/common/base/Equivalence;
aload 2
getfield com.google.common.base.FunctionalEquivalence.resultEquivalence:Lcom/google/common/base/Equivalence;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 5
iconst_1
ireturn
StackMap locals: com.google.common.base.FunctionalEquivalence
StackMap stack:
5: iconst_0
ireturn
end local 2 6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/base/FunctionalEquivalence<TF;TT;>;
0 7 1 obj Ljava/lang/Object;
4 6 2 that Lcom/google/common/base/FunctionalEquivalence<**>;
RuntimeVisibleTypeAnnotations:
METHOD_FORMAL_PARAMETER
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
obj
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.google.common.base.FunctionalEquivalence.function:Lcom/google/common/base/Function;
aastore
dup
iconst_1
aload 0
getfield com.google.common.base.FunctionalEquivalence.resultEquivalence:Lcom/google/common/base/Equivalence;
aastore
invokestatic com.google.common.base.Objects.hashCode:([Ljava/lang/Object;)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/base/FunctionalEquivalence<TF;TT;>;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
getfield com.google.common.base.FunctionalEquivalence.resultEquivalence:Lcom/google/common/base/Equivalence;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ".onResultOf("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.google.common.base.FunctionalEquivalence.function:Lcom/google/common/base/Function;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/base/FunctionalEquivalence<TF;TT;>;
}
Signature: <F:Ljava/lang/Object;T:Ljava/lang/Object;>Lcom/google/common/base/Equivalence<TF;>;Ljava/io/Serializable;
SourceFile: "FunctionalEquivalence.java"
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
com.google.common.annotations.GwtCompatible()