Package fj.data.optic

Class Iso<S,A>

java.lang.Object
fj.data.optic.PIso<S,S,A,A>
fj.data.optic.Iso<S,A>

public final class Iso<S,A> extends PIso<S,S,A,A>
PIso when S = T and A = B
  • Field Details

  • Constructor Details

  • Method Details

    • get

      public A get(S s)
      Description copied from class: PIso
      get the target of a PIso
      Specified by:
      get in class PIso<S,S,A,A>
    • reverseGet

      public S reverseGet(A a)
      Description copied from class: PIso
      get the modified source of a PIso
      Specified by:
      reverseGet in class PIso<S,S,A,A>
    • reverse

      public Iso<A,S> reverse()
      Description copied from class: PIso
      reverse a PIso: the source becomes the target and the target becomes the source
      Specified by:
      reverse in class PIso<S,S,A,A>
    • product

      public <S1, A1> Iso<P2<S,S1>,P2<A,A1>> product(Iso<S1,A1> other)
      pair two disjoint Iso
    • first

      public <C> Iso<P2<S,C>,P2<A,C>> first()
      Overrides:
      first in class PIso<S,S,A,A>
    • second

      public <C> Iso<P2<C,S>,P2<C,A>> second()
      Overrides:
      second in class PIso<S,S,A,A>
    • composeSetter

      public <C> Setter<S,C> composeSetter(Setter<A,C> other)
      compose an Iso with a Setter
    • composeTraversal

      public <C> Traversal<S,C> composeTraversal(Traversal<A,C> other)
      compose an Iso with a Traversal
    • composeOptional

      public <C> Optional<S,C> composeOptional(Optional<A,C> other)
      compose an Iso with a Optional
    • composePrism

      public <C> Prism<S,C> composePrism(Prism<A,C> other)
      compose an Iso with a Prism
    • composeLens

      public <C> Lens<S,C> composeLens(Lens<A,C> other)
      compose an Iso with a Lens
    • composeIso

      public <C> Iso<S,C> composeIso(Iso<A,C> other)
      compose an Iso with an Iso
    • asSetter

      public Setter<S,A> asSetter()
      view an Iso as a Setter
      Overrides:
      asSetter in class PIso<S,S,A,A>
    • asTraversal

      public Traversal<S,A> asTraversal()
      view an Iso as a Traversal
      Overrides:
      asTraversal in class PIso<S,S,A,A>
    • asOptional

      public Optional<S,A> asOptional()
      view an Iso as a Optional
      Overrides:
      asOptional in class PIso<S,S,A,A>
    • asPrism

      public Prism<S,A> asPrism()
      view an Iso as a Prism
      Overrides:
      asPrism in class PIso<S,S,A,A>
    • asLens

      public Lens<S,A> asLens()
      view an Iso as a Lens
      Overrides:
      asLens in class PIso<S,S,A,A>
    • iso

      public static <S, A> Iso<S,A> iso(F<S,A> get, F<A,S> reverseGet)
      create an Iso using a pair of functions: one to get the target and one to get the source.
    • id

      public static <S> Iso<S,S> id()
      create an Iso between any type and itself. id is the zero element of optics composition, for all optics o of type O (e.g. Lens, Iso, Prism, ...):
      
        o composeIso Iso.id == o
        Iso.id composeO o == o
       
      (replace composeO by composeLens, composeIso, composePrism, ...)