public class net.bytebuddy.build.HashCodeAndEqualsPlugin implements net.bytebuddy.build.Plugin, net.bytebuddy.build.Plugin$Factory
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: net.bytebuddy.build.HashCodeAndEqualsPlugin
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lnet/bytebuddy/build/HashCodeAndEqualsPlugin;
public net.bytebuddy.build.Plugin make();
descriptor: ()Lnet/bytebuddy/build/Plugin;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lnet/bytebuddy/build/HashCodeAndEqualsPlugin;
public boolean matches(net.bytebuddy.description.type.TypeDescription);
descriptor: (Lnet/bytebuddy/description/type/TypeDescription;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface net.bytebuddy.description.type.TypeDescription.getDeclaredAnnotations:()Lnet/bytebuddy/description/annotation/AnnotationList;
ldc Lnet/bytebuddy/build/HashCodeAndEqualsPlugin$Enhance;
invokeinterface net.bytebuddy.description.annotation.AnnotationList.isAnnotationPresent:(Ljava/lang/Class;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lnet/bytebuddy/build/HashCodeAndEqualsPlugin;
0 1 1 target Lnet/bytebuddy/description/type/TypeDescription;
MethodParameters:
Name Flags
target
public net.bytebuddy.dynamic.DynamicType$Builder<?> apply(net.bytebuddy.dynamic.DynamicType$Builder<?>, net.bytebuddy.description.type.TypeDescription, net.bytebuddy.dynamic.ClassFileLocator);
descriptor: (Lnet/bytebuddy/dynamic/DynamicType$Builder;Lnet/bytebuddy/description/type/TypeDescription;Lnet/bytebuddy/dynamic/ClassFileLocator;)Lnet/bytebuddy/dynamic/DynamicType$Builder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokeinterface net.bytebuddy.description.type.TypeDescription.getDeclaredAnnotations:()Lnet/bytebuddy/description/annotation/AnnotationList;
ldc Lnet/bytebuddy/build/HashCodeAndEqualsPlugin$Enhance;
invokeinterface net.bytebuddy.description.annotation.AnnotationList.ofType:(Ljava/lang/Class;)Lnet/bytebuddy/description/annotation/AnnotationDescription$Loadable;
invokeinterface net.bytebuddy.description.annotation.AnnotationDescription$Loadable.loadSilent:()Ljava/lang/annotation/Annotation;
checkcast net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance
astore 4
start local 4 1: aload 2
invokeinterface net.bytebuddy.description.type.TypeDescription.getDeclaredMethods:()Lnet/bytebuddy/description/method/MethodList;
invokestatic net.bytebuddy.matcher.ElementMatchers.isHashCode:()Lnet/bytebuddy/matcher/ElementMatcher$Junction;
invokeinterface net.bytebuddy.description.method.MethodList.filter:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/matcher/FilterableList;
checkcast net.bytebuddy.description.method.MethodList
invokeinterface net.bytebuddy.description.method.MethodList.isEmpty:()Z
ifeq 11
2: aload 1
invokestatic net.bytebuddy.matcher.ElementMatchers.isHashCode:()Lnet/bytebuddy/matcher/ElementMatcher$Junction;
invokeinterface net.bytebuddy.dynamic.DynamicType$Builder.method:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/dynamic/DynamicType$Builder$MethodDefinition$ImplementationDefinition;
aload 4
invokeinterface net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance.invokeSuper:()Lnet/bytebuddy/build/HashCodeAndEqualsPlugin$Enhance$InvokeSuper;
3: aload 2
invokevirtual net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance$InvokeSuper.hashCodeMethod:(Lnet/bytebuddy/description/type/TypeDescription;)Lnet/bytebuddy/implementation/HashCodeMethod;
4: aload 4
invokeinterface net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance.includeSyntheticFields:()Z
ifeq 6
5: invokestatic net.bytebuddy.matcher.ElementMatchers.none:()Lnet/bytebuddy/matcher/ElementMatcher$Junction;
goto 7
6: StackMap locals: net.bytebuddy.build.HashCodeAndEqualsPlugin net.bytebuddy.dynamic.DynamicType$Builder net.bytebuddy.description.type.TypeDescription net.bytebuddy.dynamic.ClassFileLocator net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance
StackMap stack: net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ImplementationDefinition net.bytebuddy.implementation.HashCodeMethod
invokestatic net.bytebuddy.matcher.ElementMatchers.isSynthetic:()Lnet/bytebuddy/matcher/ElementMatcher$Junction;
7: StackMap locals: net.bytebuddy.build.HashCodeAndEqualsPlugin net.bytebuddy.dynamic.DynamicType$Builder net.bytebuddy.description.type.TypeDescription net.bytebuddy.dynamic.ClassFileLocator net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance
StackMap stack: net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ImplementationDefinition net.bytebuddy.implementation.HashCodeMethod net.bytebuddy.matcher.ElementMatcher$Junction
invokevirtual net.bytebuddy.implementation.HashCodeMethod.withIgnoredFields:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/implementation/HashCodeMethod;
8: new net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueMatcher
dup
getstatic net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueHandling$Sort.IGNORE:Lnet/bytebuddy/build/HashCodeAndEqualsPlugin$ValueHandling$Sort;
invokespecial net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueMatcher.<init>:(Lnet/bytebuddy/build/HashCodeAndEqualsPlugin$ValueHandling$Sort;)V
invokevirtual net.bytebuddy.implementation.HashCodeMethod.withIgnoredFields:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/implementation/HashCodeMethod;
9: aload 0
new net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueMatcher
dup
getstatic net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueHandling$Sort.REVERSE_NULLABILITY:Lnet/bytebuddy/build/HashCodeAndEqualsPlugin$ValueHandling$Sort;
invokespecial net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueMatcher.<init>:(Lnet/bytebuddy/build/HashCodeAndEqualsPlugin$ValueHandling$Sort;)V
invokevirtual net.bytebuddy.build.HashCodeAndEqualsPlugin.nonNullable:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/matcher/ElementMatcher;
invokevirtual net.bytebuddy.implementation.HashCodeMethod.withNonNullableFields:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/implementation/HashCodeMethod;
10: invokeinterface net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ImplementationDefinition.intercept:(Lnet/bytebuddy/implementation/Implementation;)Lnet/bytebuddy/dynamic/DynamicType$Builder$MethodDefinition$ReceiverTypeDefinition;
astore 1
11: StackMap locals:
StackMap stack:
aload 2
invokeinterface net.bytebuddy.description.type.TypeDescription.getDeclaredMethods:()Lnet/bytebuddy/description/method/MethodList;
invokestatic net.bytebuddy.matcher.ElementMatchers.isEquals:()Lnet/bytebuddy/matcher/ElementMatcher$Junction;
invokeinterface net.bytebuddy.description.method.MethodList.filter:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/matcher/FilterableList;
checkcast net.bytebuddy.description.method.MethodList
invokeinterface net.bytebuddy.description.method.MethodList.isEmpty:()Z
ifeq 32
12: aload 4
invokeinterface net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance.invokeSuper:()Lnet/bytebuddy/build/HashCodeAndEqualsPlugin$Enhance$InvokeSuper;
13: aload 2
invokevirtual net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance$InvokeSuper.equalsMethod:(Lnet/bytebuddy/description/type/TypeDescription;)Lnet/bytebuddy/implementation/EqualsMethod;
14: aload 4
invokeinterface net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance.includeSyntheticFields:()Z
ifeq 16
15: invokestatic net.bytebuddy.matcher.ElementMatchers.none:()Lnet/bytebuddy/matcher/ElementMatcher$Junction;
goto 17
16: StackMap locals:
StackMap stack: net.bytebuddy.implementation.EqualsMethod
invokestatic net.bytebuddy.matcher.ElementMatchers.isSynthetic:()Lnet/bytebuddy/matcher/ElementMatcher$Junction;
17: StackMap locals: net.bytebuddy.build.HashCodeAndEqualsPlugin net.bytebuddy.dynamic.DynamicType$Builder net.bytebuddy.description.type.TypeDescription net.bytebuddy.dynamic.ClassFileLocator net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance
StackMap stack: net.bytebuddy.implementation.EqualsMethod net.bytebuddy.matcher.ElementMatcher$Junction
invokevirtual net.bytebuddy.implementation.EqualsMethod.withIgnoredFields:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/implementation/EqualsMethod;
18: new net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueMatcher
dup
getstatic net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueHandling$Sort.IGNORE:Lnet/bytebuddy/build/HashCodeAndEqualsPlugin$ValueHandling$Sort;
invokespecial net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueMatcher.<init>:(Lnet/bytebuddy/build/HashCodeAndEqualsPlugin$ValueHandling$Sort;)V
invokevirtual net.bytebuddy.implementation.EqualsMethod.withIgnoredFields:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/implementation/EqualsMethod;
19: aload 0
new net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueMatcher
dup
getstatic net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueHandling$Sort.REVERSE_NULLABILITY:Lnet/bytebuddy/build/HashCodeAndEqualsPlugin$ValueHandling$Sort;
invokespecial net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueMatcher.<init>:(Lnet/bytebuddy/build/HashCodeAndEqualsPlugin$ValueHandling$Sort;)V
invokevirtual net.bytebuddy.build.HashCodeAndEqualsPlugin.nonNullable:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/matcher/ElementMatcher;
invokevirtual net.bytebuddy.implementation.EqualsMethod.withNonNullableFields:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/implementation/EqualsMethod;
20: getstatic net.bytebuddy.build.HashCodeAndEqualsPlugin$AnnotationOrderComparator.INSTANCE:Lnet/bytebuddy/build/HashCodeAndEqualsPlugin$AnnotationOrderComparator;
invokevirtual net.bytebuddy.implementation.EqualsMethod.withFieldOrder:(Ljava/util/Comparator;)Lnet/bytebuddy/implementation/EqualsMethod;
21: astore 5
start local 5 22: aload 4
invokeinterface net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance.simpleComparisonsFirst:()Z
ifeq 29
23: aload 5
24: invokevirtual net.bytebuddy.implementation.EqualsMethod.withPrimitiveTypedFieldsFirst:()Lnet/bytebuddy/implementation/EqualsMethod;
25: invokevirtual net.bytebuddy.implementation.EqualsMethod.withEnumerationTypedFieldsFirst:()Lnet/bytebuddy/implementation/EqualsMethod;
26: invokevirtual net.bytebuddy.implementation.EqualsMethod.withPrimitiveWrapperTypedFieldsFirst:()Lnet/bytebuddy/implementation/EqualsMethod;
27: invokevirtual net.bytebuddy.implementation.EqualsMethod.withStringTypedFieldsFirst:()Lnet/bytebuddy/implementation/EqualsMethod;
28: astore 5
29: StackMap locals: net.bytebuddy.implementation.EqualsMethod
StackMap stack:
aload 1
invokestatic net.bytebuddy.matcher.ElementMatchers.isEquals:()Lnet/bytebuddy/matcher/ElementMatcher$Junction;
invokeinterface net.bytebuddy.dynamic.DynamicType$Builder.method:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/dynamic/DynamicType$Builder$MethodDefinition$ImplementationDefinition;
aload 4
invokeinterface net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance.permitSubclassEquality:()Z
ifeq 30
aload 5
invokevirtual net.bytebuddy.implementation.EqualsMethod.withSubclassEquality:()Lnet/bytebuddy/implementation/Implementation;
goto 31
StackMap locals:
StackMap stack: net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ImplementationDefinition
30: aload 5
StackMap locals: net.bytebuddy.build.HashCodeAndEqualsPlugin net.bytebuddy.dynamic.DynamicType$Builder net.bytebuddy.description.type.TypeDescription net.bytebuddy.dynamic.ClassFileLocator net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance net.bytebuddy.implementation.EqualsMethod
StackMap stack: net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ImplementationDefinition net.bytebuddy.implementation.Implementation
31: invokeinterface net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ImplementationDefinition.intercept:(Lnet/bytebuddy/implementation/Implementation;)Lnet/bytebuddy/dynamic/DynamicType$Builder$MethodDefinition$ReceiverTypeDefinition;
astore 1
end local 5 32: StackMap locals:
StackMap stack:
aload 1
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lnet/bytebuddy/build/HashCodeAndEqualsPlugin;
0 33 1 builder Lnet/bytebuddy/dynamic/DynamicType$Builder<*>;
0 33 2 typeDescription Lnet/bytebuddy/description/type/TypeDescription;
0 33 3 classFileLocator Lnet/bytebuddy/dynamic/ClassFileLocator;
1 33 4 enhance Lnet/bytebuddy/build/HashCodeAndEqualsPlugin$Enhance;
22 32 5 equalsMethod Lnet/bytebuddy/implementation/EqualsMethod;
Signature: (Lnet/bytebuddy/dynamic/DynamicType$Builder<*>;Lnet/bytebuddy/description/type/TypeDescription;Lnet/bytebuddy/dynamic/ClassFileLocator;)Lnet/bytebuddy/dynamic/DynamicType$Builder<*>;
MethodParameters:
Name Flags
builder
typeDescription
classFileLocator
protected net.bytebuddy.matcher.ElementMatcher<net.bytebuddy.description.field.FieldDescription> nonNullable(net.bytebuddy.matcher.ElementMatcher<net.bytebuddy.description.field.FieldDescription>);
descriptor: (Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/matcher/ElementMatcher;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lnet/bytebuddy/build/HashCodeAndEqualsPlugin;
0 1 1 matcher Lnet/bytebuddy/matcher/ElementMatcher<Lnet/bytebuddy/description/field/FieldDescription;>;
Signature: (Lnet/bytebuddy/matcher/ElementMatcher<Lnet/bytebuddy/description/field/FieldDescription;>;)Lnet/bytebuddy/matcher/ElementMatcher<Lnet/bytebuddy/description/field/FieldDescription;>;
MethodParameters:
Name Flags
matcher
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lnet/bytebuddy/build/HashCodeAndEqualsPlugin;
public boolean matches(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast net.bytebuddy.description.type.TypeDescription
invokevirtual net.bytebuddy.build.HashCodeAndEqualsPlugin.matches:(Lnet/bytebuddy/description/type/TypeDescription;)Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "HashCodeAndEqualsPlugin.java"
NestMembers:
net.bytebuddy.build.HashCodeAndEqualsPlugin$AnnotationOrderComparator net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance$InvokeSuper net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance$InvokeSuper$1 net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance$InvokeSuper$2 net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance$InvokeSuper$3 net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance$InvokeSuper$4 net.bytebuddy.build.HashCodeAndEqualsPlugin$Sorted net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueHandling net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueHandling$Sort net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueMatcher net.bytebuddy.build.HashCodeAndEqualsPlugin$WithNonNullableFields
InnerClasses:
protected final AnnotationOrderComparator = net.bytebuddy.build.HashCodeAndEqualsPlugin$AnnotationOrderComparator of net.bytebuddy.build.HashCodeAndEqualsPlugin
public abstract Enhance = net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance of net.bytebuddy.build.HashCodeAndEqualsPlugin
public abstract InvokeSuper = net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance$InvokeSuper of net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance
public abstract Sorted = net.bytebuddy.build.HashCodeAndEqualsPlugin$Sorted of net.bytebuddy.build.HashCodeAndEqualsPlugin
public abstract ValueHandling = net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueHandling of net.bytebuddy.build.HashCodeAndEqualsPlugin
public final Sort = net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueHandling$Sort of net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueHandling
protected ValueMatcher = net.bytebuddy.build.HashCodeAndEqualsPlugin$ValueMatcher of net.bytebuddy.build.HashCodeAndEqualsPlugin
public WithNonNullableFields = net.bytebuddy.build.HashCodeAndEqualsPlugin$WithNonNullableFields of net.bytebuddy.build.HashCodeAndEqualsPlugin
public abstract Factory = net.bytebuddy.build.Plugin$Factory of net.bytebuddy.build.Plugin
public abstract Loadable = net.bytebuddy.description.annotation.AnnotationDescription$Loadable of net.bytebuddy.description.annotation.AnnotationDescription
public abstract InDefinedShape = net.bytebuddy.description.field.FieldDescription$InDefinedShape of net.bytebuddy.description.field.FieldDescription
public abstract InDefinedShape = net.bytebuddy.description.method.MethodDescription$InDefinedShape of net.bytebuddy.description.method.MethodDescription
public abstract Builder = net.bytebuddy.dynamic.DynamicType$Builder of net.bytebuddy.dynamic.DynamicType
public abstract MethodDefinition = net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition of net.bytebuddy.dynamic.DynamicType$Builder
public abstract ImplementationDefinition = net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ImplementationDefinition of net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition
public abstract ReceiverTypeDefinition = net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ReceiverTypeDefinition of net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition
public abstract Junction = net.bytebuddy.matcher.ElementMatcher$Junction of net.bytebuddy.matcher.ElementMatcher
RuntimeVisibleAnnotations:
net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance()