Class PrismLaws<S,A>

java.lang.Object
io.atlassian.fugue.optic.law.PrismLaws<S,A>

public final class PrismLaws<S,A> extends Object
  • Field Details

  • Constructor Details

    • PrismLaws

      public PrismLaws(PPrism<S,S,A,A> prism)
  • Method Details

    • partialRoundTripOneWay

      public IsEq<S> partialRoundTripOneWay(S s)
      if a Prism match you can always go back to the source
    • roundTripOtherWay

      public IsEq<Option<A>> roundTripOtherWay(A a)
      reverseGet produces a value
    • modifyIdentity

      public IsEq<S> modifyIdentity(S s)
      modify id = id
    • modifySupplierFPoint

      public IsEq<S> modifySupplierFPoint(S s)
      modifyF Applicative.point(_) = Applicative.point(_)
    • modifyEitherFPoint

      public IsEq<Either<String,S>> modifyEitherFPoint(S s)
      modifyF Applicative.point(_) = Applicative.point(_)
    • modifyOptionFPoint

      public IsEq<Option<S>> modifyOptionFPoint(S s)
      modifyF Applicative.point(_) = Applicative.point(_)
    • modifyPairFPoint

      public IsEq<Pair<S,S>> modifyPairFPoint(S s)
      modifyF Applicative.point(_) = Applicative.point(_)
    • modifyFunctionFPoint

      public IsEq<S> modifyFunctionFPoint(S s)
      modifyF Applicative.point(_) = Applicative.point(_)
    • modifyIterableFPoint

      public IsEq<List<S>> modifyIterableFPoint(S s)
      modifyF Applicative.point(_) = Applicative.point(_)
    • setOption

      public IsEq<Option<S>> setOption(S s, A a)
      setOption only succeeds when the Prism is matching
    • modifyOptionIdentity

      public IsEq<Option<S>> modifyOptionIdentity(S s)
      modifyOption with id is isomorphomic to isMatching