/*
 * @(#)IShapeContainerState.java	1.0 11-Apr-07
 *
 * IIT Bombay, 
 * Licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.5 License.
 */
package interfaces;

import classes.container.ShapeContainerContext;

/**
 * Interface for encapsulating the state of the shape container
 *
 * @author  Prathab
 * @version 1.0, 22-Mar-07
 * @see interfaces.IShape
 * @see classes.container.ShapeContainerContext
 */
public interface IShapeContainerState {
	/**
	 * Adds the given shape to container based on its context
	 * @param shapeContainerContext <tt>ShapeContainerContext</tt> object that to be referred
	 * to perform the operation
	 * @param shape <tt>IShape</tt> object to be added
	 * @return <tt>true</tt> if shape is added to container
	 */
	public boolean addShape(ShapeContainerContext shapeContainerContext, IShape shape);
	
	/**
	 * Removes the given shape from container based on its context
	 * @param shapeContainerContext <tt>ShapeContainerContext</tt> object that to be referred
	 * to perform the operation
	 * @param shape <tt>IShape</tt> object to be removed
	 * @return <tt>true</tt> if shape is removed to container
	 */
	public boolean removeShape(ShapeContainerContext shapeContainerContext, IShape shape);

}
