net.sf.jga.fn.adaptor
Class ChainUnary<T,F,R>

java.lang.Object
  extended by net.sf.jga.fn.Functor<R>
      extended by net.sf.jga.fn.UnaryFunctor<T,R>
          extended by net.sf.jga.fn.adaptor.ChainUnary<T,F,R>
All Implemented Interfaces:
java.io.Serializable, Visitable

public class ChainUnary<T,F,R>
extends UnaryFunctor<T,R>

Unary Functor that passes the results of one Unary Functor as the argument to another Unary Functor. This allows for the construction of compound functors from the primitives found in the arithmetic, logical, property, and comparison packages.

Copyright © 2002-2005 David A. Hall

Author:
David A. Hall
See Also:
Serialized Form

Nested Class Summary
static interface ChainUnary.Visitor
          Interface for classes that may interpret a ChainUnary functor.
 
Constructor Summary
ChainUnary(UnaryFunctor<F,R> f, UnaryFunctor<T,F> g)
          Builds a BinaryCompose functor, given the outer functor f the inner functor g.
 
Method Summary
 void accept(Visitor v)
          Calls the Visitor's visit(BinaryCompose) method, if it implements the nested Visitor interface.
 R fn(T x)
          Given argument x, passes x to the inner functor, and passes the result to the outer functor.
 UnaryFunctor<T,F> getInnerFunctor()
          Returns the inner functor
 UnaryFunctor<F,R> getOuterFunctor()
          Returns the outer functor
 java.lang.String toString()
           
 
Methods inherited from class net.sf.jga.fn.UnaryFunctor
bind, bind0th, bindNth, compose, compose, compose, composeNth, composeNth, eval, generate, generateNth
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ChainUnary

public ChainUnary(UnaryFunctor<F,R> f,
                  UnaryFunctor<T,F> g)
Builds a BinaryCompose functor, given the outer functor f the inner functor g.

Throws:
java.lang.IllegalArgumentException - if any of the functors is missing
Method Detail

getOuterFunctor

public UnaryFunctor<F,R> getOuterFunctor()
Returns the outer functor

Returns:
the outer functor

getInnerFunctor

public UnaryFunctor<T,F> getInnerFunctor()
Returns the inner functor

Returns:
the inner functor

fn

public R fn(T x)
Given argument x, passes x to the inner functor, and passes the result to the outer functor.

Specified by:
fn in class UnaryFunctor<T,R>
Returns:
f(g(x))

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

accept

public void accept(Visitor v)
Calls the Visitor's visit(BinaryCompose) method, if it implements the nested Visitor interface.

Specified by:
accept in interface Visitable
Overrides:
accept in class Functor<R>


Copyright © 2002-2006 David A. Hall. All Rights Reserved.