//[skeleton1.
package visual.statik.sampled;

import java.awt.Composite;
import java.awt.image.BufferedImageOp;
import java.util.Iterator;

import visual.statik.AbstractAggregateContent;


/**
 * Static sampled visual content that is a composition
 * of many component parts
 *
 * @author  Prof. David Bernstein, James Madison University
 * @version 1.0
 */
public class      CompositeContent 
       extends    AbstractAggregateContent<TransformableContent>
       implements TransformableContent
{
    /**
     * Default Constructor
     */
    public CompositeContent()
    {
       super();       
    }
//]skeleton1.
//[setBufferedImageOp.
 
    /**
     * Set the BufferedImageOp to use when transforming
     * the Image
     *
     * @param op   The BufferedImageOp
     */
    public void setBufferedImageOp(BufferedImageOp op)
    {
       Iterator<TransformableContent>  i;
       
       i = iterator();
       while (i.hasNext())
       {
          i.next().setBufferedImageOp(op);          
       }
    }
//]setBufferedImageOp.
//[setComposite.

    /**
     * Set the transparency/Composite
     *
     * @param c   The Composite
     */
    public void setComposite(Composite c)
    {
       Iterator<TransformableContent>  i;
       
       i = iterator();
       while (i.hasNext())
       {
          i.next().setComposite(c);          
       }
    }
//]setComposite.
//[skeleton2.
    
}
//]skeleton2.
