Package fj
Class Equal<A>
- java.lang.Object
-
- fj.Equal<A>
-
public final class Equal<A> extends java.lang.Object
Tests for equality between two objects.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
Equal.AltDefinition<A>
Primitives functions of Equal: alternative minimal definition and overridable methods.static interface
Equal.Definition<A>
Primitives functions of Equal: minimal definition and overridable methods.
-
Field Summary
Fields Modifier and Type Field Description static Equal<java.math.BigDecimal>
bigdecimalEqual
An equal instance for theBigDecimal
type.static Equal<java.math.BigInteger>
bigintEqual
An equal instance for theBigInteger
type.static Equal<BitSet>
bitSetSequal
An equal instance for theBitSet
type.static Equal<java.lang.Boolean>
booleanEqual
An equal instance for theboolean
type.static Equal<java.lang.Byte>
byteEqual
An equal instance for thebyte
type.static Equal<java.lang.Character>
charEqual
An equal instance for thechar
type.private Equal.Definition<A>
def
static Equal<java.lang.Double>
doubleEqual
An equal instance for thedouble
type.static Equal<LazyString>
eq
An equal instance for lazy strings.static Equal<java.lang.Float>
floatEqual
An equal instance for thefloat
type.static Equal<HList.HNil>
hListEqual
An equal instance for the empty heterogeneous list.static Equal<java.lang.Integer>
intEqual
An equal instance for theint
type.static Equal<java.lang.Long>
longEqual
An equal instance for thelong
type.static Equal<Natural>
naturalEqual
An equal instance for theNatural
type.static Equal<java.lang.Short>
shortEqual
An equal instance for theshort
type.static Equal<java.lang.StringBuffer>
stringBufferEqual
An equal instance for theStringBuffer
type.static Equal<java.lang.StringBuilder>
stringBuilderEqual
An equal instance for theStringBuilder
type.static Equal<java.lang.String>
stringEqual
An equal instance for theString
type.
-
Constructor Summary
Constructors Modifier Constructor Description private
Equal(Equal.Definition<A> def)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <A> Equal<A>
anyEqual()
Returns an equal instance that uses theObject.equals(Object)
method to test for equality.static <A> Equal<Array<A>>
arrayEqual(Equal<A> ea)
An equal instance for theArray
type.static <A,B>
Equal<A>contramap(F<A,B> f, Equal<B> eq)
Static version ofcontramap(F)
<B> Equal<B>
contramap(F<B,A> f)
Maps the given function across this equal as a contra-variant functor.private static <A,B>
Equal.Definition<B>contramapDef(F<B,A> f, Equal.Definition<A> aEqDef)
static <A,B,C>
Equal<Either3<A,B,C>>either3Equal(Equal<A> ea, Equal<B> eb, Equal<C> ec)
static <A,B>
Equal<Either<A,B>>eitherEqual(Equal<A> ea, Equal<B> eb)
An equal instance for theEither
type.F2<A,A,java.lang.Boolean>
eq()
First-class equality check.F<A,java.lang.Boolean>
eq(A a)
Partially applied equality check.boolean
eq(A a1, A a2)
Returnstrue
if the two given arguments are equal,false
otherwise.static <A> Equal<A>
equal(F<A,F<A,java.lang.Boolean>> f)
Constructs an equal instance from the given function.static <A> Equal<A>
equal(F2<A,A,java.lang.Boolean> f)
Constructs an equal instance from the given function.static <A> Equal<A>
equalDef(Equal.AltDefinition<A> definition)
Constructs an equal instance from the given (alternative) definition.static <A> Equal<A>
equalDef(Equal.Definition<A> definition)
Constructs an equal instance from the given definition.static <A> boolean
equals0(java.lang.Class<? super A> clazz, A self, java.lang.Object other, Equal<A> equal)
Helper method to implementObject.equals(Object)
correctly.static <A> boolean
equals0(java.lang.Class<? super A> clazz, A self, java.lang.Object other, F0<Equal<A>> equal)
Helper method to implementObject.equals(Object)
correctly.static <E,L extends HList<L>>
Equal<HList.HCons<E,L>>hListEqual(Equal<E> e, Equal<L> l)
An equal instance for heterogeneous lists.static <A> Equal<List<A>>
listEqual(Equal<A> ea)
An equal instance for theList
type.static <A> Equal<NonEmptyList<A>>
nonEmptyListEqual(Equal<A> ea)
An equal instance for theNonEmptyList
type.Equal<A>
not()
An equal instance, which reverts equality for selfboolean
notEq(A a1, A a2)
Returnstrue
if the two given arguments are not equal,false
otherwise.static <A,B>
Equal.Definition<A>on(F<A,B> f, Equal<B> eq)
Begin definition of an equal instance.static <A> Equal<Option<A>>
optionEqual(Equal<A> ea)
An equal instance for theOption
type.static <A> Equal<P1<A>>
p1Equal(Equal<A> ea)
An equal instance for a product-1.static <A,B>
Equal<P2<A,B>>p2Equal(Equal<A> ea, Equal<B> eb)
An equal instance for a product-2.static <A,B,C>
Equal<P3<A,B,C>>p3Equal(Equal<A> ea, Equal<B> eb, Equal<C> ec)
An equal instance for a product-3.static <A,B,C,D>
Equal<P4<A,B,C,D>>p4Equal(Equal<A> ea, Equal<B> eb, Equal<C> ec, Equal<D> ed)
An equal instance for a product-4.static <A,B,C,D,E>
Equal<P5<A,B,C,D,E>>p5Equal(Equal<A> ea, Equal<B> eb, Equal<C> ec, Equal<D> ed, Equal<E> ee)
An equal instance for a product-5.static <A,B,C,D,E,F$>
Equal<P6<A,B,C,D,E,F$>>p6Equal(Equal<A> ea, Equal<B> eb, Equal<C> ec, Equal<D> ed, Equal<E> ee, Equal<F$> ef)
An equal instance for a product-6.static <A,B,C,D,E,F$,G>
Equal<P7<A,B,C,D,E,F$,G>>p7Equal(Equal<A> ea, Equal<B> eb, Equal<C> ec, Equal<D> ed, Equal<E> ee, Equal<F$> ef, Equal<G> eg)
An equal instance for a product-7.static <A,B,C,D,E,F$,G,H>
Equal<P8<A,B,C,D,E,F$,G,H>>p8Equal(Equal<A> ea, Equal<B> eb, Equal<C> ec, Equal<D> ed, Equal<E> ee, Equal<F$> ef, Equal<G> eg, Equal<H> eh)
An equal instance for a product-8.static <I,A>
Equal<Result<I,A>>resultEqual(Equal<A> ea, Equal<I> ei)
static <A> Equal<Seq<A>>
seqEqual(Equal<A> e)
static <A> Equal<Set<A>>
setEqual(Equal<A> e)
Equal instance for sets.static <A> Equal<Stream<A>>
streamEqual(Equal<A> ea)
An equal instance for theStream
type.static <A> Equal<Tree<A>>
treeEqual(Equal<A> ea)
An equal instance for theTree
type.static <K,V>
Equal<TreeMap<K,V>>treeMapEqual(Equal<K> k, Equal<V> v)
static <A> Equal<TreeZipper<A>>
treeZipperEqual(Equal<A> ea)
An equal instance for theTreeZipper
type.static <A> Equal<V2<A>>
v2Equal(Equal<A> ea)
An equal instance for a vector-2.static <A> Equal<V3<A>>
v3Equal(Equal<A> ea)
An equal instance for a vector-3.static <A> Equal<V4<A>>
v4Equal(Equal<A> ea)
An equal instance for a vector-4.static <A> Equal<V5<A>>
v5Equal(Equal<A> ea)
An equal instance for a vector-5.static <A> Equal<V6<A>>
v6Equal(Equal<A> ea)
An equal instance for a vector-6.static <A> Equal<V7<A>>
v7Equal(Equal<A> ea)
An equal instance for a vector-7.static <A> Equal<V8<A>>
v8Equal(Equal<A> ea)
An equal instance for a vector-8.static <A,B>
Equal<Validation<A,B>>validationEqual(Equal<A> ea, Equal<B> eb)
An equal instance for theValidation
type.static <A,B>
Equal<Writer<A,B>>writerEqual(Equal<A> eq1, Equal<B> eq2)
static <A> Equal<Zipper<A>>
zipperEqual(Equal<A> ea)
An equal instance for theZipper
type.
-
-
-
Field Detail
-
def
private final Equal.Definition<A> def
-
booleanEqual
public static final Equal<java.lang.Boolean> booleanEqual
An equal instance for theboolean
type.
-
byteEqual
public static final Equal<java.lang.Byte> byteEqual
An equal instance for thebyte
type.
-
charEqual
public static final Equal<java.lang.Character> charEqual
An equal instance for thechar
type.
-
doubleEqual
public static final Equal<java.lang.Double> doubleEqual
An equal instance for thedouble
type.
-
floatEqual
public static final Equal<java.lang.Float> floatEqual
An equal instance for thefloat
type.
-
intEqual
public static final Equal<java.lang.Integer> intEqual
An equal instance for theint
type.
-
bigintEqual
public static final Equal<java.math.BigInteger> bigintEqual
An equal instance for theBigInteger
type.
-
bigdecimalEqual
public static final Equal<java.math.BigDecimal> bigdecimalEqual
An equal instance for theBigDecimal
type.
-
longEqual
public static final Equal<java.lang.Long> longEqual
An equal instance for thelong
type.
-
shortEqual
public static final Equal<java.lang.Short> shortEqual
An equal instance for theshort
type.
-
naturalEqual
public static final Equal<Natural> naturalEqual
An equal instance for theNatural
type.
-
stringEqual
public static final Equal<java.lang.String> stringEqual
An equal instance for theString
type.
-
stringBufferEqual
public static final Equal<java.lang.StringBuffer> stringBufferEqual
An equal instance for theStringBuffer
type.
-
stringBuilderEqual
public static final Equal<java.lang.StringBuilder> stringBuilderEqual
An equal instance for theStringBuilder
type.
-
eq
public static final Equal<LazyString> eq
An equal instance for lazy strings.
-
hListEqual
public static final Equal<HList.HNil> hListEqual
An equal instance for the empty heterogeneous list.
-
-
Constructor Detail
-
Equal
private Equal(Equal.Definition<A> def)
-
-
Method Detail
-
eq
public boolean eq(A a1, A a2)
Returnstrue
if the two given arguments are equal,false
otherwise.- Parameters:
a1
- An object to test for equality against another.a2
- An object to test for equality against another.- Returns:
true
if the two given arguments are equal,false
otherwise.
-
notEq
public boolean notEq(A a1, A a2)
Returnstrue
if the two given arguments are not equal,false
otherwise.- Parameters:
a1
- An object to test for inequality against another.a2
- An object to test for inequality against another.- Returns:
true
if the two given arguments are not equal,false
otherwise.
-
eq
public F2<A,A,java.lang.Boolean> eq()
First-class equality check.- Returns:
- A function that returns
true
if the two given arguments are equal.
-
eq
public F<A,java.lang.Boolean> eq(A a)
Partially applied equality check.- Parameters:
a
- An object to test for equality against another.- Returns:
- A function that returns
true
if the given argument equals the argument to this method.
-
contramap
public <B> Equal<B> contramap(F<B,A> f)
Maps the given function across this equal as a contra-variant functor.- Parameters:
f
- The function to map.- Returns:
- A new equal.
-
not
public final Equal<A> not()
An equal instance, which reverts equality for self- Returns:
- A new equal instance
-
contramapDef
private static <A,B> Equal.Definition<B> contramapDef(F<B,A> f, Equal.Definition<A> aEqDef)
-
contramap
public static <A,B> Equal<A> contramap(F<A,B> f, Equal<B> eq)
Static version ofcontramap(F)
-
on
public static <A,B> Equal.Definition<A> on(F<A,B> f, Equal<B> eq)
Begin definition of an equal instance.- See Also:
Equal.Definition.then(F, Equal)
-
equal
public static <A> Equal<A> equal(F<A,F<A,java.lang.Boolean>> f)
Constructs an equal instance from the given function. Java 8+ users: useequalDef(Definition)
instead.- Parameters:
f
- The function to construct the equal with.- Returns:
- An equal instance from the given function.
-
equal
public static <A> Equal<A> equal(F2<A,A,java.lang.Boolean> f)
Constructs an equal instance from the given function. Java 8+ users: useequalDef(AltDefinition)
instead.- Parameters:
f
- The function to construct the equal with.- Returns:
- An equal instance from the given function.
-
equalDef
public static <A> Equal<A> equalDef(Equal.Definition<A> definition)
Constructs an equal instance from the given definition.- Parameters:
definition
- a definition of the equal instance.- Returns:
- An equal instance from the given function.
-
equalDef
public static <A> Equal<A> equalDef(Equal.AltDefinition<A> definition)
Constructs an equal instance from the given (alternative) definition.- Parameters:
definition
- a definition of the equal instance.- Returns:
- An equal instance from the given function.
-
anyEqual
public static <A> Equal<A> anyEqual()
Returns an equal instance that uses theObject.equals(Object)
method to test for equality.- Returns:
- An equal instance that uses the
Object.equals(Object)
method to test for equality.
-
eitherEqual
public static <A,B> Equal<Either<A,B>> eitherEqual(Equal<A> ea, Equal<B> eb)
An equal instance for theEither
type.
-
either3Equal
public static <A,B,C> Equal<Either3<A,B,C>> either3Equal(Equal<A> ea, Equal<B> eb, Equal<C> ec)
-
validationEqual
public static <A,B> Equal<Validation<A,B>> validationEqual(Equal<A> ea, Equal<B> eb)
An equal instance for theValidation
type.- Parameters:
ea
- Equality across the failing side ofValidation
.eb
- Equality across the succeeding side ofValidation
.- Returns:
- An equal instance for the
Validation
type.
-
listEqual
public static <A> Equal<List<A>> listEqual(Equal<A> ea)
An equal instance for theList
type.- Parameters:
ea
- Equality across the elements of the list.- Returns:
- An equal instance for the
List
type.
-
nonEmptyListEqual
public static <A> Equal<NonEmptyList<A>> nonEmptyListEqual(Equal<A> ea)
An equal instance for theNonEmptyList
type.- Parameters:
ea
- Equality across the elements of the non-empty list.- Returns:
- An equal instance for the
NonEmptyList
type.
-
optionEqual
public static <A> Equal<Option<A>> optionEqual(Equal<A> ea)
An equal instance for theOption
type.- Parameters:
ea
- Equality across the element of the option.- Returns:
- An equal instance for the
Option
type.
-
streamEqual
public static <A> Equal<Stream<A>> streamEqual(Equal<A> ea)
An equal instance for theStream
type.- Parameters:
ea
- Equality across the elements of the stream.- Returns:
- An equal instance for the
Stream
type.
-
zipperEqual
public static <A> Equal<Zipper<A>> zipperEqual(Equal<A> ea)
An equal instance for theZipper
type.- Parameters:
ea
- Equality across the elements of the zipper.- Returns:
- An equal instance for the
Zipper
type.
-
treeZipperEqual
public static <A> Equal<TreeZipper<A>> treeZipperEqual(Equal<A> ea)
An equal instance for theTreeZipper
type.- Parameters:
ea
- Equality across the elements of the tree zipper.- Returns:
- An equal instance for the
TreeZipper
type.
-
arrayEqual
public static <A> Equal<Array<A>> arrayEqual(Equal<A> ea)
An equal instance for theArray
type.- Parameters:
ea
- Equality across the elements of the array.- Returns:
- An equal instance for the
Array
type.
-
treeEqual
public static <A> Equal<Tree<A>> treeEqual(Equal<A> ea)
An equal instance for theTree
type.- Parameters:
ea
- Equality across the elements of the tree.- Returns:
- An equal instance for the
Tree
type.
-
p1Equal
public static <A> Equal<P1<A>> p1Equal(Equal<A> ea)
An equal instance for a product-1.- Parameters:
ea
- Equality across the first element of the product.- Returns:
- An equal instance for a product-1.
-
p2Equal
public static <A,B> Equal<P2<A,B>> p2Equal(Equal<A> ea, Equal<B> eb)
An equal instance for a product-2.- Parameters:
ea
- Equality across the first element of the product.eb
- Equality across the second element of the product.- Returns:
- An equal instance for a product-2.
-
p3Equal
public static <A,B,C> Equal<P3<A,B,C>> p3Equal(Equal<A> ea, Equal<B> eb, Equal<C> ec)
An equal instance for a product-3.- Parameters:
ea
- Equality across the first element of the product.eb
- Equality across the second element of the product.ec
- Equality across the third element of the product.- Returns:
- An equal instance for a product-3.
-
p4Equal
public static <A,B,C,D> Equal<P4<A,B,C,D>> p4Equal(Equal<A> ea, Equal<B> eb, Equal<C> ec, Equal<D> ed)
An equal instance for a product-4.- Parameters:
ea
- Equality across the first element of the product.eb
- Equality across the second element of the product.ec
- Equality across the third element of the product.ed
- Equality across the fourth element of the product.- Returns:
- An equal instance for a product-4.
-
p5Equal
public static <A,B,C,D,E> Equal<P5<A,B,C,D,E>> p5Equal(Equal<A> ea, Equal<B> eb, Equal<C> ec, Equal<D> ed, Equal<E> ee)
An equal instance for a product-5.- Parameters:
ea
- Equality across the first element of the product.eb
- Equality across the second element of the product.ec
- Equality across the third element of the product.ed
- Equality across the fourth element of the product.ee
- Equality across the fifth element of the product.- Returns:
- An equal instance for a product-5.
-
p6Equal
public static <A,B,C,D,E,F$> Equal<P6<A,B,C,D,E,F$>> p6Equal(Equal<A> ea, Equal<B> eb, Equal<C> ec, Equal<D> ed, Equal<E> ee, Equal<F$> ef)
An equal instance for a product-6.- Parameters:
ea
- Equality across the first element of the product.eb
- Equality across the second element of the product.ec
- Equality across the third element of the product.ed
- Equality across the fourth element of the product.ee
- Equality across the fifth element of the product.ef
- Equality across the sixth element of the product.- Returns:
- An equal instance for a product-6.
-
p7Equal
public static <A,B,C,D,E,F$,G> Equal<P7<A,B,C,D,E,F$,G>> p7Equal(Equal<A> ea, Equal<B> eb, Equal<C> ec, Equal<D> ed, Equal<E> ee, Equal<F$> ef, Equal<G> eg)
An equal instance for a product-7.- Parameters:
ea
- Equality across the first element of the product.eb
- Equality across the second element of the product.ec
- Equality across the third element of the product.ed
- Equality across the fourth element of the product.ee
- Equality across the fifth element of the product.ef
- Equality across the sixth element of the product.eg
- Equality across the seventh element of the product.- Returns:
- An equal instance for a product-7.
-
p8Equal
public static <A,B,C,D,E,F$,G,H> Equal<P8<A,B,C,D,E,F$,G,H>> p8Equal(Equal<A> ea, Equal<B> eb, Equal<C> ec, Equal<D> ed, Equal<E> ee, Equal<F$> ef, Equal<G> eg, Equal<H> eh)
An equal instance for a product-8.- Parameters:
ea
- Equality across the first element of the product.eb
- Equality across the second element of the product.ec
- Equality across the third element of the product.ed
- Equality across the fourth element of the product.ee
- Equality across the fifth element of the product.ef
- Equality across the sixth element of the product.eg
- Equality across the seventh element of the product.eh
- Equality across the eighth element of the product.- Returns:
- An equal instance for a product-8.
-
v2Equal
public static <A> Equal<V2<A>> v2Equal(Equal<A> ea)
An equal instance for a vector-2.- Parameters:
ea
- Equality across the elements of the vector.- Returns:
- An equal instance for a vector-2.
-
v3Equal
public static <A> Equal<V3<A>> v3Equal(Equal<A> ea)
An equal instance for a vector-3.- Parameters:
ea
- Equality across the elements of the vector.- Returns:
- An equal instance for a vector-3.
-
v4Equal
public static <A> Equal<V4<A>> v4Equal(Equal<A> ea)
An equal instance for a vector-4.- Parameters:
ea
- Equality across the elements of the vector.- Returns:
- An equal instance for a vector-4.
-
v5Equal
public static <A> Equal<V5<A>> v5Equal(Equal<A> ea)
An equal instance for a vector-5.- Parameters:
ea
- Equality across the elements of the vector.- Returns:
- An equal instance for a vector-5.
-
v6Equal
public static <A> Equal<V6<A>> v6Equal(Equal<A> ea)
An equal instance for a vector-6.- Parameters:
ea
- Equality across the elements of the vector.- Returns:
- An equal instance for a vector-6.
-
v7Equal
public static <A> Equal<V7<A>> v7Equal(Equal<A> ea)
An equal instance for a vector-7.- Parameters:
ea
- Equality across the elements of the vector.- Returns:
- An equal instance for a vector-7.
-
v8Equal
public static <A> Equal<V8<A>> v8Equal(Equal<A> ea)
An equal instance for a vector-8.- Parameters:
ea
- Equality across the elements of the vector.- Returns:
- An equal instance for a vector-8.
-
hListEqual
public static <E,L extends HList<L>> Equal<HList.HCons<E,L>> hListEqual(Equal<E> e, Equal<L> l)
An equal instance for heterogeneous lists.- Parameters:
e
- Equality for the first element of the list.l
- Equality for the rest of the list.- Returns:
- an equal instance for a heterogeneous list.
-
setEqual
public static <A> Equal<Set<A>> setEqual(Equal<A> e)
Equal instance for sets.- Parameters:
e
- Equality for the set elements.- Returns:
- An equal instance for sets.
-
equals0
public static <A> boolean equals0(java.lang.Class<? super A> clazz, A self, java.lang.Object other, Equal<A> equal)
Helper method to implementObject.equals(Object)
correctly. DO NOT USE it for any other purpose.- Parameters:
clazz
- the class in which theObject.equals(Object)
is implementedself
- a reference to 'this'other
- the other object of the comparisonequal
- an equal instance for the type of self (that useanyEqual()
if generic type).- Returns:
- true if self and other are equal
-
equals0
public static <A> boolean equals0(java.lang.Class<? super A> clazz, A self, java.lang.Object other, F0<Equal<A>> equal)
Helper method to implementObject.equals(Object)
correctly. DO NOT USE it for any other purpose.- Parameters:
clazz
- the class in which theObject.equals(Object)
is implementedself
- a reference to 'this'other
- the other object of the comparisonequal
- a lazy equal instance for the type (that useanyEqual()
if generic type)..- Returns:
- true if self and other are equal
-
-