Package net.bytebuddy.build
Class HashCodeAndEqualsPlugin
- java.lang.Object
-
- net.bytebuddy.build.HashCodeAndEqualsPlugin
-
- All Implemented Interfaces:
Plugin,ElementMatcher<TypeDescription>
- Direct Known Subclasses:
HashCodeAndEqualsPlugin.WithNonNullableFields
public class HashCodeAndEqualsPlugin extends java.lang.Object implements Plugin
A build tool plugin that addsObject.hashCode()andObject.equals(Object)methods to a class if theHashCodeAndEqualsPlugin.Enhanceannotation is present and no explicit method declaration was added.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceHashCodeAndEqualsPlugin.EnhanceInstructs theHashCodeAndEqualsPluginto generateObject.hashCode()andObject.equals(Object)for the annotated class unless these methods are already declared explicitly.static interfaceHashCodeAndEqualsPlugin.ValueHandlingDetermines how a field should be used within generated hash code and equality methods.protected static classHashCodeAndEqualsPlugin.ValueMatcherAn element matcher for aHashCodeAndEqualsPlugin.ValueHandlingannotation.static classHashCodeAndEqualsPlugin.WithNonNullableFieldsA version of theHashCodeAndEqualsPluginthat assumes that all fields are non-nullable unless they are explicitly marked.-
Nested classes/interfaces inherited from interface net.bytebuddy.matcher.ElementMatcher
ElementMatcher.Junction<S>
-
-
Constructor Summary
Constructors Constructor Description HashCodeAndEqualsPlugin()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DynamicType.Builder<?>apply(DynamicType.Builder<?> builder, TypeDescription typeDescription)Applies this plugin.booleanmatches(TypeDescription target)Matches a target against this element matcher.protected ElementMatcher<FieldDescription>nonNullable(ElementMatcher<FieldDescription> matcher)Resolves the matcher to identify non-nullable fields.
-
-
-
Method Detail
-
matches
public boolean matches(TypeDescription target)
Description copied from interface:ElementMatcherMatches a target against this element matcher.- Specified by:
matchesin interfaceElementMatcher<TypeDescription>- Parameters:
target- The instance to be matched.- Returns:
trueif the given element is matched by this matcher orfalseotherwise.
-
apply
public DynamicType.Builder<?> apply(DynamicType.Builder<?> builder, TypeDescription typeDescription)
Description copied from interface:PluginApplies this plugin.
-
nonNullable
protected ElementMatcher<FieldDescription> nonNullable(ElementMatcher<FieldDescription> matcher)
Resolves the matcher to identify non-nullable fields.- Parameters:
matcher- The matcher that identifies fields that are either nullable or non-nullable.- Returns:
- The actual matcher to identify non-nullable fields.
-
-