package aop.example.model;

/**
 * Объект альбом
 * @author Zubairov Renat
 */
public class Album implements Controlled {

	/**
	 * Владелец
	 */
	private User owner;

	/**
	 * Название
	 */
	private String title;
	
	/**
	 * Конструктор
	 * @param anowner владелец
	 * @param title название
	 */
	public Album(User anowner, String title) {
		super();
		setTitle(title);
		owner = anowner;
	}

	/**
	 * @return
	 */
	public String getTitle() {
		return title;
	}

	/**
	 * @param string
	 */
	public void setTitle(String string) {
		title = string;
	}

	/**
	 * @return
	 */
	public User getOwner() {
		return owner;
	}

	/**
	 * Для удобства и лаконичности
	 * @see java.lang.Object#toString()
	 */
	public String toString() {
		return getTitle();
	}
	
	/**
	 * Этот метод нам нужен для того что бы можно было бы легко сравнивать
	 * альбомы, а значит и использовать автоматическое удаление/поиск
	 * в объектах имплементирующих интерфейс List
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	public boolean equals(Object obj) {
		return obj.toString().equals(toString());
	}


	// метод интерфейса Controlled всегда возвращает true 
	public boolean isReadable() { return true; }
	
	// метод интерфейса Controlled всегда возвращает true
	public boolean isDeletable() { return true; }
	
	// метод интерфейса Controlled всегда возвращает true	
	public boolean isAddable()  { return true; }

}
