Package fj.data

Class Either.LeftProjection<A,​B>

  • All Implemented Interfaces:
    java.lang.Iterable<A>
    Enclosing class:
    Either<A,​B>

    public static final class Either.LeftProjection<A,​B>
    extends java.lang.Object
    implements java.lang.Iterable<A>
    A left projection of an either value.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private Either<A,​B> e  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private LeftProjection​(Either<A,​B> e)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      <X> Either<X,​B> apply​(Either<F<A,​X>,​B> e)
      Function application on this projection's value.
      <X> Either<X,​B> bind​(F<A,​Either<X,​B>> f)
      Binds the given function across this projection's value if it has one.
      Either<A,​B> either()
      The either value underlying this projection.
      boolean exists​(F<A,​java.lang.Boolean> f)
      Returns false if no value or returns the result of the application of the given function to the value.
      <X> Option<Either<A,​X>> filter​(F<A,​java.lang.Boolean> f)
      Returns None if this projection has no value or if the given predicate p does not hold for the value, otherwise, returns a right in Some.
      boolean forall​(F<A,​java.lang.Boolean> f)
      Returns true if no value or returns the result of the application of the given function to the value.
      Unit foreach​(F<A,​Unit> f)
      Execute a side-effect on this projection's value if it has one.
      void foreachDoEffect​(Effect1<A> f)
      Execute a side-effect on this projection's value if it has one.
      java.util.Iterator<A> iterator()
      Returns an iterator for this projection.
      <X> Either<X,​B> map​(F<A,​X> f)
      Map the given function across this projection's value if it has one.
      A on​(F<B,​A> f)
      The value of this projection or the result of the given function on the opposing projection's value.
      A orValue​(A a)
      The value of this projection or the given argument.
      A orValue​(F0<A> a)
      The value of this projection or the given argument.
      <X> Either<X,​B> sequence​(Either<X,​B> e)
      Anonymous bind through this projection.
      Array<A> toArray()
      Returns a single element array if this projection has a value, otherwise an empty array.
      java.util.Collection<A> toCollection()
      Projects an immutable collection of this projection.
      List<A> toList()
      Returns a single element list if this projection has a value, otherwise an empty list.
      Option<A> toOption()
      Returns this projection's value in Some if it exists, otherwise None.
      Stream<A> toStream()
      Returns a single element stream if this projection has a value, otherwise an empty stream.
      <C> IO<Either<C,​B>> traverseIO​(F<A,​IO<C>> f)
      Anonymous bind through this projection.
      <C> List<Either<C,​B>> traverseList​(F<A,​List<C>> f)
      Traverse with function that produces List (non-determinism).
      <C> Option<Either<C,​B>> traverseOption​(F<A,​Option<C>> f)  
      <C> P1<Either<C,​B>> traverseP1​(F<A,​P1<C>> f)
      Traverse this left with the given function and collect the output as a p1.
      <C> Stream<Either<C,​B>> traverseStream​(F<A,​Stream<C>> f)  
      A value()
      The value of this projection or fails with a specialised error message.
      A valueE​(F0<java.lang.String> err)
      Returns the value of this projection or fails with the given error message.
      A valueE​(java.lang.String err)
      Returns the value of this projection or fails with the given error message.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Constructor Detail

      • LeftProjection

        private LeftProjection​(Either<A,​B> e)
    • Method Detail

      • iterator

        public java.util.Iterator<A> iterator()
        Returns an iterator for this projection. This method exists to permit the use in a for-each loop.
        Specified by:
        iterator in interface java.lang.Iterable<A>
        Returns:
        A iterator for this projection.
      • either

        public Either<A,​B> either()
        The either value underlying this projection.
        Returns:
        The either value underlying this projection.
      • valueE

        public A valueE​(F0<java.lang.String> err)
        Returns the value of this projection or fails with the given error message.
        Parameters:
        err - The error message to fail with.
        Returns:
        The value of this projection
      • valueE

        public A valueE​(java.lang.String err)
        Returns the value of this projection or fails with the given error message.
        Parameters:
        err - The error message to fail with.
        Returns:
        The value of this projection
      • value

        public A value()
        The value of this projection or fails with a specialised error message.
        Returns:
        The value of this projection.
      • orValue

        public A orValue​(F0<A> a)
        The value of this projection or the given argument.
        Parameters:
        a - The value to return if this projection has no value.
        Returns:
        The value of this projection or the given argument.
      • orValue

        public A orValue​(A a)
        The value of this projection or the given argument.
        Parameters:
        a - The value to return if this projection has no value.
        Returns:
        The value of this projection or the given argument.
      • on

        public A on​(F<B,​A> f)
        The value of this projection or the result of the given function on the opposing projection's value.
        Parameters:
        f - The function to execute if this projection has no value.
        Returns:
        The value of this projection or the result of the given function on the opposing projection's value.
      • foreach

        public Unit foreach​(F<A,​Unit> f)
        Execute a side-effect on this projection's value if it has one.
        Parameters:
        f - The side-effect to execute.
        Returns:
        The unit value.
      • foreachDoEffect

        public void foreachDoEffect​(Effect1<A> f)
        Execute a side-effect on this projection's value if it has one.
        Parameters:
        f - The side-effect to execute.
      • map

        public <X> Either<X,​B> map​(F<A,​X> f)
        Map the given function across this projection's value if it has one.
        Parameters:
        f - The function to map across this projection.
        Returns:
        A new either value after mapping.
      • bind

        public <X> Either<X,​B> bind​(F<A,​Either<X,​B>> f)
        Binds the given function across this projection's value if it has one.
        Parameters:
        f - The function to bind across this projection.
        Returns:
        A new either value after binding.
      • sequence

        public <X> Either<X,​B> sequence​(Either<X,​B> e)
        Anonymous bind through this projection.
        Parameters:
        e - The value to bind with.
        Returns:
        An either after binding through this projection.
      • traverseList

        public <C> List<Either<C,​B>> traverseList​(F<A,​List<C>> f)
        Traverse with function that produces List (non-determinism).
        Parameters:
        f - the function to traverse with
        Returns:
        An either after traversing through this projection.
      • traverseIO

        public <C> IO<Either<C,​B>> traverseIO​(F<A,​IO<C>> f)
        Anonymous bind through this projection.
        Parameters:
        f - the function to traverse with
        Returns:
        An either after traversing through this projection.
      • traverseP1

        public <C> P1<Either<C,​B>> traverseP1​(F<A,​P1<C>> f)
        Traverse this left with the given function and collect the output as a p1.
        Type Parameters:
        C - the type of the p1 value
        Parameters:
        f - the given function
        Returns:
        the p1
      • filter

        public <X> Option<Either<A,​X>> filter​(F<A,​java.lang.Boolean> f)
        Returns None if this projection has no value or if the given predicate p does not hold for the value, otherwise, returns a right in Some.
        Parameters:
        f - The predicate function to test on this projection's value.
        Returns:
        None if this projection has no value or if the given predicate p does not hold for the value, otherwise, returns a right in Some.
      • apply

        public <X> Either<X,​B> apply​(Either<F<A,​X>,​B> e)
        Function application on this projection's value.
        Parameters:
        e - The either of the function to apply on this projection's value.
        Returns:
        The result of function application within either.
      • forall

        public boolean forall​(F<A,​java.lang.Boolean> f)
        Returns true if no value or returns the result of the application of the given function to the value.
        Parameters:
        f - The predicate function to test on this projection's value.
        Returns:
        true if no value or returns the result of the application of the given function to the value.
      • exists

        public boolean exists​(F<A,​java.lang.Boolean> f)
        Returns false if no value or returns the result of the application of the given function to the value.
        Parameters:
        f - The predicate function to test on this projection's value.
        Returns:
        false if no value or returns the result of the application of the given function to the value.
      • toList

        public List<A> toList()
        Returns a single element list if this projection has a value, otherwise an empty list.
        Returns:
        A single element list if this projection has a value, otherwise an empty list.
      • toOption

        public Option<A> toOption()
        Returns this projection's value in Some if it exists, otherwise None.
        Returns:
        This projection's value in Some if it exists, otherwise None.
      • toArray

        public Array<A> toArray()
        Returns a single element array if this projection has a value, otherwise an empty array.
        Returns:
        A single element array if this projection has a value, otherwise an empty array.
      • toStream

        public Stream<A> toStream()
        Returns a single element stream if this projection has a value, otherwise an empty stream.
        Returns:
        A single element stream if this projection has a value, otherwise an empty stream.
      • toCollection

        public java.util.Collection<A> toCollection()
        Projects an immutable collection of this projection.
        Returns:
        An immutable collection of this projection.