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, waitcompose, composeUnchecked, upCastprotected 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)
OpticProfunctor 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()