Package com.diffplug.spotless
Class LazyForwardingEquality<T extends Serializable>
java.lang.Object
com.diffplug.spotless.LazyForwardingEquality<T>
- All Implemented Interfaces:
NoLambda
,Serializable
public abstract class LazyForwardingEquality<T extends Serializable>
extends Object
implements Serializable, NoLambda
Implements equality, hashcode, and serialization entirely in terms
of lazily-computed state. The state's serialized form is used to implement
equals() and hashCode(), so you don't have to.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.diffplug.spotless.NoLambda
NoLambda.EqualityBasedOnSerialization
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract T
This function is guaranteed to be called at most once.final boolean
final int
hashCode()
protected final T
state()
Returns the underlying state, possibly triggering a call to {calculateState()
.byte[]
toBytes()
Returns a byte array representation of everything inside thisSerializableFileFilter
.static void
Ensures that the lazy state has been evaluated.
-
Constructor Details
-
LazyForwardingEquality
public LazyForwardingEquality()
-
-
Method Details
-
calculateState
This function is guaranteed to be called at most once. If the state is never required, then it will never be called at all.Throws exception because it's likely that there will be some IO going on.
- Throws:
Exception
-
state
Returns the underlying state, possibly triggering a call to {calculateState()
. -
toBytes
public byte[] toBytes()Description copied from interface:NoLambda
Returns a byte array representation of everything inside thisSerializableFileFilter
.The main purpose of this method is to ensure one can't instantiate this class with lambda expressions, which are notoriously difficult to serialize and deserialize properly. (See
SerializableFileFilterImpl.SkipFilesNamed
for an example of how to make a serializable subclass.) -
equals
-
hashCode
public final int hashCode() -
unlazy
Ensures that the lazy state has been evaluated.
-