/**
 * The requirements of a Component that can transfer an Appointment
 * (e.g., using drag-and-drop or cut/copy/paste).
 * 
 * @author  Prof. David Bernstein, James Madison University
 * @version 1.0
 */
public interface AppointmentTransferer
{
  /**
   * Get the current Appointment.
   * 
   * @return The Appointment
   */
  public abstract Appointment getAppointment();
  
  /**
   * Get the source actions supported by this AppointmentTransferer.
   * 
   * @return TransferHandler.MOVE or TransferHandler.COPY
   */
  public abstract int getSourceActions();

  /**
   * Set the current Appointment.
   * 
   * @param The Appointment to use
   */
  public abstract void setAppointment(Appointment appointment);
}
