ModN.java
Created with JBuilder
package lrs.visitor;

import lrs.*;

/**
 * Replaces each Integer element in the host with modulo N,
 * where N > 0 is the input.
 * @author D. X. Nguyen
 */
public class ModN implements IAlgo {

    public static final ModN Singleton = new ModN();
    private ModN() {
    }

    public Object emptyCase(LRStruct host, Object N) {
        return null;
    }

    public Object nonEmptyCase(LRStruct host, Object N) {
        int n = ((Integer)N).intValue();
        int f = ((Integer)host.getFirst()).intValue();
        return host.setFirst(new Integer(f % n)).getRest().execute(this, N);
    }
}

ModN.java
Created with JBuilder