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

import java.awt.Color;

/**
 * Interface for shape classes
 *
 * @author  Prathab
 * @version 1.0, 21-Mar-07
 */
public interface IShape extends IShapeDrawer, Cloneable{
	
	/**
	 * Draws the shape at the specified location
	 * @param x x-coordinate
	 * @param y y-coordinate
	 */
	public void drawShape(int x, int y); 
	
	/**
	 * To set the shape is permenant throught the application lifecycle
	 * @param isPermanent status of the shape
	 */
	public void setAsPermanentShape(boolean isPermanent);
	
	/**
	 * Return whether the shape is permanent
	 * @return <tt>true</tt> if shape is permanent
	 */
	public boolean IsPermanentShape();
	
	/**
	 * Changes the shape coordinates
	 * @param x x-coordinate
	 * @param y y-coordinate
	 */
	public void changeShapeXYCoordinates(int x, int y); 
	
	/**
	 * Set the color for the shape
	 * @param color color of the shape
	 * @see java.awt.Color
	 */
	public void setColor(Color color);
	
	/**
	 * Get the color of the shape
	 * @return <Color> object of the shape
	 */
	public Color getColor();
	
	/**
	 * Perfroms the clone operation on the current object
	 */
	public Object clone();
}
