1 package net.sf.jga.fn.algorithm; 33 34 import net.sf.jga.fn.BinaryFunctor; 35 import net.sf.jga.fn.UnaryFunctor; 36 import net.sf.jga.util.TransformAdjacentIterator; 37 import java.util.Iterator ; 38 39 48 49 public class TransformAdjacent<T,R> 50 extends UnaryFunctor<Iterator<? extends T>, TransformAdjacentIterator<T,R>> 51 { 52 static final long serialVersionUID = -3208147943658111386L; 53 54 private BinaryFunctor<T,T,R> _fn; 55 56 61 public TransformAdjacent(BinaryFunctor<T,T,R> fn) { 62 if (fn == null) 63 throw new IllegalArgumentException (); 64 65 _fn = fn; 66 } 67 68 71 public BinaryFunctor<T,T,R> getFunction() { 72 return _fn; 73 } 74 75 81 public TransformAdjacentIterator<T,R> fn(Iterator<? extends T> iterator) { 82 return new TransformAdjacentIterator<T,R>(iterator, _fn); 83 } 84 85 89 public void accept(net.sf.jga.fn.Visitor v) { 90 if (v instanceof TransformAdjacent.Visitor) 91 ((TransformAdjacent.Visitor)v).visit(this); 92 else 93 v.visit(this); 94 } 95 96 98 public String toString() { 99 return "TransformAdjacent["+_fn+"]"; 100 } 101 102 104 107 public interface Visitor extends net.sf.jga.fn.Visitor { 108 public void visit(TransformAdjacent host); 109 } 110 } 111 | Popular Tags |