/*
 * Copyright (c) 2009 JSCAPE
 * 1147 S. 53rd Pl., Mesa, Arizona, 85206, U.S.A.
 * All rights reserved.
 *
 * This software is the confidential and proprietary information of
 * JSCAPE. ("Confidential Information").  You shall not disclose such
 * Confidential Information and shall use it only in accordance with
 * the terms of the license agreement you entered into with JSCAPE.
 *
 */

package com.jscape.util.functor.adapters;

import com.jscape.util.functor.UnaryFunction;
import com.jscape.util.functor.UnaryProcedure;

/**
 * @author Alex Usun
 */
public class UnaryProcedureFunction<V, R>
        extends UnaryFunction<V, R> {

    private UnaryProcedure<? super V> base;

    /**
     * @param base base
     * @param <V>
     * @param <R>
     *
     * @return
     */
    public static <V, R> UnaryFunction<V, R> adapt(UnaryProcedure<? super V> base) {
        return new UnaryProcedureFunction<V, R>(base);
    }

    /**
     * @param base base
     */
    public UnaryProcedureFunction(UnaryProcedure<? super V> base) {
        this.base = base;
    }

    /**
     * @param value value
     *
     * @return R instance
     */
    public R evaluate(V value) {
        this.base.evaluate(value);
        return null;
    }
}