/**
 * <PRE>
 * encapsulates a Pixmap member function
 * the method Execute should be overriden by
 * subclasses to execute a Pixmap operation for the Pixmap
 * passed into method Operate
 * </PRE>
 *
 * @author Owen Astrachan
 *
 */

public abstract class PixmapOperator
{
    public PixmapOperator()
    {
	myPixmap = null;
    }

    /**
     * @param p the pixmap that will be operated on
     */
    
    public void operate(Pixmap p)
    {
	myPixmap = p;
	execute();
    }

    /**
     * must be overriden in subclasses
     * e.g., myPixmap.Invert() for an inversion
     */
    
    public abstract void execute();
    
    protected Pixmap myPixmap;
}
