Proof
- The profunctor type this optic evaluates. It shall be a subtype of the outer and inner optics' type.S
- The input object type.T
- The output object type.A
- The input field type.B
- The output field type.A1
- The input subfield type.B1
- The output subfield type.public static final class Optic.CompositionOptic<Proof extends K1,S,T,A,B,A1,B1> extends Object implements Optic<Proof,S::A1,T::B1>
The composition acts on the objects of the first optic and the fields of the second optic.
Modifier and Type | Field and Description |
---|---|
protected Optic<? super Proof,A::A1,B::B1> |
inner
The inner optic, which acts on the field and subfield types.
|
protected Optic<? super Proof,S::A,T::B> |
outer
The outer optic, which acts on the object and field types.
|
Constructor and Description |
---|
CompositionOptic(Optic<? super Proof,S::A,T::B> outer,
Optic<? super Proof,A::A1,B::B1> inner)
Constructs a new composition from the given compatible optics.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object o) |
<P extends K2> |
eval(? extends Proof<P> proof)
Applies the given
Profunctor to this optic to produce a
function that converts a transformation between the field types into a transformation between the object types. |
int |
hashCode() |
Optic<? super Proof,A::A1,B::B1> |
inner()
Returns the inner optic, which acts on the field and subfield types.
|
Optic<? super Proof,S::A,T::B> |
outer()
Returns the outer optic, which acts on the object and field types.
|
String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
compose, composeUnchecked, upCast
protected final Optic<? super Proof extends K1,S::A,T::B> outer
public <P extends K2> (P<A1,B1>) -> P<S,T> eval(? extends Proof<P> proof)
Optic
Profunctor
to this optic to produce a
function that converts a transformation between the field types into a transformation between the object types.eval
in interface Optic<Proof extends K1,S::A1,T::B1>
P
- The type associated with the profunctor.proof
- The profunctor associated with this optic.public Optic<? super Proof,S::A,T::B> outer()