ConcatWith.java
Created with JBuilder
package listFW.visitor;

import listFW.*;

/**
 * Concatenates the host with the input parameter.
 * An IListFactory is passed to the constructor.
 * @author D.X. Nguyen
 * @since Copyright 2002 DXN - All rights reserved
 */
public class ConcatWith implements IListAlgo{
    private IListFactory _fact;

    public ConcatWith (IListFactory f) {
        _fact = f;
    }

    /**
     * Returns the input list since the host is empty.
     * @param host an IEmptyList.
     * @param rhs IList on the right hand side.
     * @return rhs
     */
    public Object emptyCase(IEmptyList host, Object rhs) {
        return rhs;
    }

    /**
     * Cons host's first with the concatenation of host's rest.
     * @param host an INEList.
     * @param rhs IList on the right hand side
     * @return INEList
     */
    public Object nonEmptyCase(INEList host, Object rhs) {
        IList restConcat = (IList)host.getRest ().execute (this, rhs);
        return _fact.makeNEList(host.getFirst (), restConcat);
    }
}



ConcatWith.java
Created with JBuilder