public class net.bytebuddy.implementation.EqualsMethod$Appender implements net.bytebuddy.implementation.bytecode.ByteCodeAppender
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: net.bytebuddy.implementation.EqualsMethod$Appender
super_class: java.lang.Object
{
private final net.bytebuddy.description.type.TypeDescription instrumentedType;
descriptor: Lnet/bytebuddy/description/type/TypeDescription;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final net.bytebuddy.implementation.bytecode.StackManipulation baseline;
descriptor: Lnet/bytebuddy/implementation/bytecode/StackManipulation;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.List<net.bytebuddy.description.field.FieldDescription$InDefinedShape> fieldDescriptions;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;
private final net.bytebuddy.matcher.ElementMatcher<? super net.bytebuddy.description.field.FieldDescription$InDefinedShape> nonNullable;
descriptor: Lnet/bytebuddy/matcher/ElementMatcher;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lnet/bytebuddy/matcher/ElementMatcher<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;
protected void <init>(net.bytebuddy.description.type.TypeDescription, net.bytebuddy.implementation.bytecode.StackManipulation, java.util.List<net.bytebuddy.description.field.FieldDescription$InDefinedShape>, net.bytebuddy.matcher.ElementMatcher<? super net.bytebuddy.description.field.FieldDescription$InDefinedShape>);
descriptor: (Lnet/bytebuddy/description/type/TypeDescription;Lnet/bytebuddy/implementation/bytecode/StackManipulation;Ljava/util/List;Lnet/bytebuddy/matcher/ElementMatcher;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield net.bytebuddy.implementation.EqualsMethod$Appender.instrumentedType:Lnet/bytebuddy/description/type/TypeDescription;
2: aload 0
aload 2
putfield net.bytebuddy.implementation.EqualsMethod$Appender.baseline:Lnet/bytebuddy/implementation/bytecode/StackManipulation;
3: aload 0
aload 3
putfield net.bytebuddy.implementation.EqualsMethod$Appender.fieldDescriptions:Ljava/util/List;
4: aload 0
aload 4
putfield net.bytebuddy.implementation.EqualsMethod$Appender.nonNullable:Lnet/bytebuddy/matcher/ElementMatcher;
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lnet/bytebuddy/implementation/EqualsMethod$Appender;
0 6 1 instrumentedType Lnet/bytebuddy/description/type/TypeDescription;
0 6 2 baseline Lnet/bytebuddy/implementation/bytecode/StackManipulation;
0 6 3 fieldDescriptions Ljava/util/List<Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;
0 6 4 nonNullable Lnet/bytebuddy/matcher/ElementMatcher<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;
Signature: (Lnet/bytebuddy/description/type/TypeDescription;Lnet/bytebuddy/implementation/bytecode/StackManipulation;Ljava/util/List<Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;Lnet/bytebuddy/matcher/ElementMatcher<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;)V
MethodParameters:
Name Flags
instrumentedType
baseline
fieldDescriptions
nonNullable
public net.bytebuddy.implementation.bytecode.ByteCodeAppender$Size apply(org.objectweb.asm.MethodVisitor, net.bytebuddy.implementation.Implementation$Context, net.bytebuddy.description.method.MethodDescription);
descriptor: (Lorg/objectweb/asm/MethodVisitor;Lnet/bytebuddy/implementation/Implementation$Context;Lnet/bytebuddy/description/method/MethodDescription;)Lnet/bytebuddy/implementation/bytecode/ByteCodeAppender$Size;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokeinterface net.bytebuddy.description.method.MethodDescription.isStatic:()Z
ifeq 2
1: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Hash code method must not be static: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 3
invokeinterface net.bytebuddy.description.method.MethodDescription.getParameters:()Lnet/bytebuddy/description/method/ParameterList;
invokeinterface net.bytebuddy.description.method.ParameterList.size:()I
iconst_1
if_icmpne 3
aload 3
invokeinterface net.bytebuddy.description.method.MethodDescription.getParameters:()Lnet/bytebuddy/description/method/ParameterList;
invokeinterface net.bytebuddy.description.method.ParameterList.getOnly:()Ljava/lang/Object;
checkcast net.bytebuddy.description.method.ParameterDescription
invokeinterface net.bytebuddy.description.method.ParameterDescription.getType:()Lnet/bytebuddy/description/type/TypeDescription$Generic;
invokeinterface net.bytebuddy.description.type.TypeDescription$Generic.isPrimitive:()Z
ifeq 4
3: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 3
invokeinterface net.bytebuddy.description.method.MethodDescription.getReturnType:()Lnet/bytebuddy/description/type/TypeDescription$Generic;
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
invokeinterface net.bytebuddy.description.type.TypeDescription$Generic.represents:(Ljava/lang/reflect/Type;)Z
ifne 6
5: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Hash code method does not return primitive boolean: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
iconst_3
aload 0
getfield net.bytebuddy.implementation.EqualsMethod$Appender.fieldDescriptions:Ljava/util/List;
invokeinterface java.util.List.size:()I
bipush 8
imul
iadd
invokespecial java.util.ArrayList.<init>:(I)V
astore 4
start local 4 7: aload 4
aload 0
getfield net.bytebuddy.implementation.EqualsMethod$Appender.baseline:Lnet/bytebuddy/implementation/bytecode/StackManipulation;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: iconst_0
istore 5
start local 5 9: aload 0
getfield net.bytebuddy.implementation.EqualsMethod$Appender.fieldDescriptions:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 24
StackMap locals: net.bytebuddy.implementation.EqualsMethod$Appender org.objectweb.asm.MethodVisitor net.bytebuddy.implementation.Implementation$Context net.bytebuddy.description.method.MethodDescription java.util.List int top java.util.Iterator
StackMap stack:
10: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast net.bytebuddy.description.field.FieldDescription$InDefinedShape
astore 6
start local 6 11: aload 4
invokestatic net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.loadThis:()Lnet/bytebuddy/implementation/bytecode/StackManipulation;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
12: aload 4
aload 6
invokestatic net.bytebuddy.implementation.bytecode.member.FieldAccess.forField:(Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;)Lnet/bytebuddy/implementation/bytecode/member/FieldAccess$Defined;
invokeinterface net.bytebuddy.implementation.bytecode.member.FieldAccess$Defined.read:()Lnet/bytebuddy/implementation/bytecode/StackManipulation;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
13: aload 4
getstatic net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.REFERENCE:Lnet/bytebuddy/implementation/bytecode/member/MethodVariableAccess;
iconst_1
invokevirtual net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.loadFrom:(I)Lnet/bytebuddy/implementation/bytecode/StackManipulation;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
14: aload 4
aload 0
getfield net.bytebuddy.implementation.EqualsMethod$Appender.instrumentedType:Lnet/bytebuddy/description/type/TypeDescription;
invokestatic net.bytebuddy.implementation.bytecode.assign.TypeCasting.to:(Lnet/bytebuddy/description/type/TypeDefinition;)Lnet/bytebuddy/implementation/bytecode/StackManipulation;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
15: aload 4
aload 6
invokestatic net.bytebuddy.implementation.bytecode.member.FieldAccess.forField:(Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;)Lnet/bytebuddy/implementation/bytecode/member/FieldAccess$Defined;
invokeinterface net.bytebuddy.implementation.bytecode.member.FieldAccess$Defined.read:()Lnet/bytebuddy/implementation/bytecode/StackManipulation;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
16: aload 6
invokeinterface net.bytebuddy.description.field.FieldDescription$InDefinedShape.getType:()Lnet/bytebuddy/description/type/TypeDescription$Generic;
invokeinterface net.bytebuddy.description.type.TypeDescription$Generic.isPrimitive:()Z
ifne 17
aload 6
invokeinterface net.bytebuddy.description.field.FieldDescription$InDefinedShape.getType:()Lnet/bytebuddy/description/type/TypeDescription$Generic;
invokeinterface net.bytebuddy.description.type.TypeDescription$Generic.isArray:()Z
ifne 17
aload 0
getfield net.bytebuddy.implementation.EqualsMethod$Appender.nonNullable:Lnet/bytebuddy/matcher/ElementMatcher;
aload 6
invokeinterface net.bytebuddy.matcher.ElementMatcher.matches:(Ljava/lang/Object;)Z
ifeq 18
17: StackMap locals: net.bytebuddy.implementation.EqualsMethod$Appender org.objectweb.asm.MethodVisitor net.bytebuddy.implementation.Implementation$Context net.bytebuddy.description.method.MethodDescription java.util.List int net.bytebuddy.description.field.FieldDescription$InDefinedShape java.util.Iterator
StackMap stack:
getstatic net.bytebuddy.implementation.EqualsMethod$NullValueGuard$NoOp.INSTANCE:Lnet/bytebuddy/implementation/EqualsMethod$NullValueGuard$NoOp;
goto 19
18: StackMap locals:
StackMap stack:
new net.bytebuddy.implementation.EqualsMethod$NullValueGuard$UsingJump
dup
aload 3
invokespecial net.bytebuddy.implementation.EqualsMethod$NullValueGuard$UsingJump.<init>:(Lnet/bytebuddy/description/method/MethodDescription;)V
19: StackMap locals:
StackMap stack: net.bytebuddy.implementation.EqualsMethod$NullValueGuard
astore 8
start local 8 20: aload 4
aload 8
invokeinterface net.bytebuddy.implementation.EqualsMethod$NullValueGuard.before:()Lnet/bytebuddy/implementation/bytecode/StackManipulation;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
21: aload 4
aload 6
invokeinterface net.bytebuddy.description.field.FieldDescription$InDefinedShape.getType:()Lnet/bytebuddy/description/type/TypeDescription$Generic;
invokestatic net.bytebuddy.implementation.EqualsMethod$ValueComparator.of:(Lnet/bytebuddy/description/type/TypeDefinition;)Lnet/bytebuddy/implementation/bytecode/StackManipulation;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
22: aload 4
aload 8
invokeinterface net.bytebuddy.implementation.EqualsMethod$NullValueGuard.after:()Lnet/bytebuddy/implementation/bytecode/StackManipulation;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
23: iload 5
aload 8
invokeinterface net.bytebuddy.implementation.EqualsMethod$NullValueGuard.getRequiredVariablePadding:()I
invokestatic java.lang.Math.max:(II)I
istore 5
end local 8 end local 6 24: StackMap locals: net.bytebuddy.implementation.EqualsMethod$Appender org.objectweb.asm.MethodVisitor net.bytebuddy.implementation.Implementation$Context net.bytebuddy.description.method.MethodDescription java.util.List int top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
25: aload 4
iconst_1
invokestatic net.bytebuddy.implementation.bytecode.constant.IntegerConstant.forValue:(Z)Lnet/bytebuddy/implementation/bytecode/StackManipulation;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
26: aload 4
getstatic net.bytebuddy.implementation.bytecode.member.MethodReturn.INTEGER:Lnet/bytebuddy/implementation/bytecode/member/MethodReturn;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
27: new net.bytebuddy.implementation.bytecode.ByteCodeAppender$Size
dup
new net.bytebuddy.implementation.bytecode.StackManipulation$Compound
dup
aload 4
invokespecial net.bytebuddy.implementation.bytecode.StackManipulation$Compound.<init>:(Ljava/util/List;)V
aload 1
aload 2
invokevirtual net.bytebuddy.implementation.bytecode.StackManipulation$Compound.apply:(Lorg/objectweb/asm/MethodVisitor;Lnet/bytebuddy/implementation/Implementation$Context;)Lnet/bytebuddy/implementation/bytecode/StackManipulation$Size;
invokevirtual net.bytebuddy.implementation.bytecode.StackManipulation$Size.getMaximalSize:()I
aload 3
invokeinterface net.bytebuddy.description.method.MethodDescription.getStackSize:()I
iload 5
iadd
invokespecial net.bytebuddy.implementation.bytecode.ByteCodeAppender$Size.<init>:(II)V
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lnet/bytebuddy/implementation/EqualsMethod$Appender;
0 28 1 methodVisitor Lorg/objectweb/asm/MethodVisitor;
0 28 2 implementationContext Lnet/bytebuddy/implementation/Implementation$Context;
0 28 3 instrumentedMethod Lnet/bytebuddy/description/method/MethodDescription;
7 28 4 stackManipulations Ljava/util/List<Lnet/bytebuddy/implementation/bytecode/StackManipulation;>;
9 28 5 padding I
11 24 6 fieldDescription Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;
20 24 8 nullValueGuard Lnet/bytebuddy/implementation/EqualsMethod$NullValueGuard;
MethodParameters:
Name Flags
methodVisitor
implementationContext
instrumentedMethod
}
SourceFile: "EqualsMethod.java"
NestHost: net.bytebuddy.implementation.EqualsMethod
InnerClasses:
public abstract Enhance = net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance of net.bytebuddy.build.HashCodeAndEqualsPlugin
public abstract InDefinedShape = net.bytebuddy.description.field.FieldDescription$InDefinedShape of net.bytebuddy.description.field.FieldDescription
public abstract Generic = net.bytebuddy.description.type.TypeDescription$Generic of net.bytebuddy.description.type.TypeDescription
protected Appender = net.bytebuddy.implementation.EqualsMethod$Appender of net.bytebuddy.implementation.EqualsMethod
protected abstract NullValueGuard = net.bytebuddy.implementation.EqualsMethod$NullValueGuard of net.bytebuddy.implementation.EqualsMethod
public final NoOp = net.bytebuddy.implementation.EqualsMethod$NullValueGuard$NoOp of net.bytebuddy.implementation.EqualsMethod$NullValueGuard
public UsingJump = net.bytebuddy.implementation.EqualsMethod$NullValueGuard$UsingJump of net.bytebuddy.implementation.EqualsMethod$NullValueGuard
protected abstract ValueComparator = net.bytebuddy.implementation.EqualsMethod$ValueComparator of net.bytebuddy.implementation.EqualsMethod
public abstract Context = net.bytebuddy.implementation.Implementation$Context of net.bytebuddy.implementation.Implementation
public Size = net.bytebuddy.implementation.bytecode.ByteCodeAppender$Size of net.bytebuddy.implementation.bytecode.ByteCodeAppender
public Compound = net.bytebuddy.implementation.bytecode.StackManipulation$Compound of net.bytebuddy.implementation.bytecode.StackManipulation
public Size = net.bytebuddy.implementation.bytecode.StackManipulation$Size of net.bytebuddy.implementation.bytecode.StackManipulation
public abstract Defined = net.bytebuddy.implementation.bytecode.member.FieldAccess$Defined of net.bytebuddy.implementation.bytecode.member.FieldAccess
RuntimeVisibleAnnotations:
net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance()