package com.ejie.m62fb.utils.memory;

/**
 * <p>
 * Interfaz para controlar el estado de un objeto (añadido, editado o
 * eliminado).
 * </p>
 * 
XXXX
 */
public interface MemoryObject {

	/**
	 * Indica si el objeto ha sido a&ntilde;adido.
	 * 
	 * @return <code>true</code> si ha sido a&ntilde;adido o <code>false</code>
	 *         en caso contrario.
	 */
	public boolean isAdded();

	/**
	 * Establece si un objeto se ha marcado para a&ntilde;adir.
	 * 
	 * @param added
	 *            <code>true</code> si se ha a&ntilde;adir, <code>false</code>
	 *            en caso contrario.
	 */
	public void setAdded(final boolean added);

	/**
	 * Indica si el objeto ha sido editado.
	 * 
	 * @return <code>true</code> si ha sido editado o <code>false</code> en caso
	 *         contrario.
	 */
	public boolean isEdited();

	/**
	 * Establece si un objeto se ha marcado para actualizar.
	 * 
	 * @param edited
	 *            <code>true</code> si se ha actualizado, <code>false</code> en
	 *            caso contrario.
	 */
	public void setEdited(final boolean edited);

	/**
	 * Indica si el objeto ha sido eliminado.
	 * 
	 * @return <code>true</code> si ha sido eliminado o <code>false</code> en
	 *         caso contrario.
	 */
	public boolean isRemoved();

	/**
	 * Establece si un objeto se ha marcado para eliminar.
	 * 
	 * @param removed
	 *            <code>true</code> si se ha eliminado, <code>false</code> en
	 *            caso contrario.
	 */
	public void setRemoved(final boolean removed);
}
