package org.bukkit.conversations;
import java.util.EventObject;
/**
 * ConversationAbandonedEvent contains information about an abandoned
 * conversation.
 */
public class ConversationAbandonedEvent extends EventObject
{
	private ConversationContext context;
	private ConversationCanceller canceller;
	public ConversationAbandonedEvent(Conversation conversation)
	{
		this(conversation, null);
	}
	public ConversationAbandonedEvent(Conversation conversation, ConversationCanceller canceller)
	{
		super(conversation);
		this.context = conversation.getContext();
		this.canceller = canceller;
	}
	/**
	 * Gets the object that caused the conversation to be abandoned.
	 *
	 * @return The object that abandoned the conversation.
	 */
	public ConversationCanceller getCanceller()
	{
		return canceller;
	}
	/**
	 * Gets the abandoned conversation's conversation context.
	 *
	 * @return The abandoned conversation's conversation context.
	 */
	public ConversationContext getContext()
	{
		return context;
	}
	/**
	 * Indicates how the conversation was abandoned - naturally as part of the
	 * prompt chain or prematurely via a {@link ConversationCanceller}.
	 *
	 * @return True if the conversation is abandoned gracefully by a {@link
	 * Prompt} returning null or the next prompt. False of the
	 * conversations is abandoned prematurely by a ConversationCanceller.
	 */
	public boolean gracefulExit()
	{
		return canceller == null;
	}
}