package ca.ucalgary.seahawk.gui;

/**
 * This interface should be implemented by any application component that
 * desires to receive incoming data from MobyObjectTransferHandler.  The MOTH
 * will turn pasted data into MOBY Objects, so for example a JPanel interface
 * element implementing this interface could have data manually dropped on it to 
 * populate its Moby data (direct manipulation).
 */
public interface MobyObjectReceiver{
    /**
     * Callback routine used by MobyObjectTransferHandler once it has resolved the data to paste.
     * The incoming name is one of the key values provided in the return value from getAcceptableData().
     */
    public void consumeMobyObject(String incomingName, org.biomoby.shared.data.MobyDataInstance incomingData);

    /**
     * List of data that the object is willing to consume in consumeMobyObject() at the given moment.
     * This could , for example a MobyDataObjectSet of MobyDataComposites of data type DNASequences, 
     * or a single MobyDataComposite of data type FASTA_AA.
     */
    public java.util.Map<String, org.biomoby.shared.MobyPrimaryData> getAcceptableData();
}
