1 package net.sf.jga.fn.algorithm; 33 34 import java.util.Iterator ; 35 import net.sf.jga.fn.UnaryFunctor; 36 import net.sf.jga.fn.adaptor.ConditionalUnary; 37 import net.sf.jga.fn.adaptor.ConstantUnary; 38 import net.sf.jga.util.TransformIterator; 39 import net.sf.jga.fn.adaptor.Identity; 40 41 51 52 public class ReplaceAll<T> 53 extends UnaryFunctor<Iterator <? extends T>, TransformIterator<T,T>> 54 { 55 static final long serialVersionUID = -6156225521195687370L; 56 57 private UnaryFunctor<T,T> _fn; 59 60 private T _value; 62 63 69 public ReplaceAll(UnaryFunctor<T,Boolean > test, T value) { 70 if (test == null) 71 throw new IllegalArgumentException (); 72 73 _value = value; 74 _fn = new ConditionalUnary<T,T>(test, new ConstantUnary<T,T>(value), new Identity<T>()); 75 } 76 77 80 public UnaryFunctor<T,T> getFunction() { 81 return _fn; 82 } 83 84 87 88 public T getValue() { 89 return _value; 90 } 91 92 98 public TransformIterator<T,T> fn(Iterator <? extends T> iterator) { 99 return new TransformIterator<T,T>(iterator, _fn); 100 } 101 102 106 public void accept(net.sf.jga.fn.Visitor v) { 107 if (v instanceof ReplaceAll.Visitor) 108 ((ReplaceAll.Visitor)v).visit(this); 109 else 110 v.visit(this); 111 } 112 113 115 public String toString() { 116 return "ReplaceAll"; 117 } 118 119 121 124 public interface Visitor extends net.sf.jga.fn.Visitor { 125 public void visit(ReplaceAll host); 126 } 127 } 128 | Popular Tags |