// Path: core/src/main/java/edu/ucdavis/fiehnlab/spectra/hash/core/listener/SplashListener.java
// public interface SplashListener {
// 
//     /**
//      * let's listener know that a new hash was created
//      * @param e
//      */
//     void eventReceived(SplashingEvent e);
// 
//     /**
//      * notificaton that the hashing is finished
//      * @param spectrum
//      * @param splash
//      */
//     void complete(Spectrum spectrum, String splash);
// }


import edu.ucdavis.fiehnlab.spectra.hash.core.listener.SplashListener;
package edu.ucdavis.fiehnlab.spectra.hash.core;


/**
 * declares an easy to use api to calculate a spectra hash
 */
public interface Splash {

    /**
     * generates a new spectra hash based on the given spectrum
     * @return
     */
    String splashIt(Spectrum spectrum);

    /**
     * adds an optional listener to the
     * @param listener
     */
// Path: core/src/main/java/edu/ucdavis/fiehnlab/spectra/hash/core/listener/SplashListener.java
// public interface SplashListener {
// 
//     /**
//      * let's listener know that a new hash was created
//      * @param e
//      */
//     void eventReceived(SplashingEvent e);
// 
//     /**
//      * notificaton that the hashing is finished
//      * @param spectrum
//      * @param splash
//      */
//     void complete(Spectrum spectrum, String splash);
// }


// Path: core/src/main/java/edu/ucdavis/fiehnlab/spectra/hash/core/Splash.java
import edu.ucdavis.fiehnlab.spectra.hash.core.listener.SplashListener;

package edu.ucdavis.fiehnlab.spectra.hash.core;


/**
 * declares an easy to use api to calculate a spectra hash
 */
public interface Splash {

    /**
     * generates a new spectra hash based on the given spectrum
     * @return
     */
    String splashIt(Spectrum spectrum);

    /**
     * adds an optional listener to the
     * @param listener
     */
    void addListener(SplashListener listener);