Filter filters all multiples of the first value it receives.
public class Filter extends ReactiveProcess { private Channel in, out; private int prime; public Filter(Channel in, Channel out,int prime) { this.in = in; this.out = out; this.prime = prime; } public Filter(NrpMachine machine,String in, String out,int prime) { this.in = machine.getChannel(in); this.out = machine.getChannel(out); this.prime = prime; machine.add(this); } final public String toString(){ return "filter(" + prime + "," + out + "," + in + ")"; } protected byte activation(Machine machine) { byte b = fix(in,machine); if (b == TERM){ int v = ((Integer)in.get()).intValue(); if (0 != v % prime){ put(out,new Integer(v),machine); } return STOP; } return b; } }