package leigh.conflux;

import leigh.eo.EO;
import leigh.eo.EOLoop;

import java.io.IOException;
import java.util.UUID;

/**
 * Classes implementing this interface provide access to low-level data stored outside of Conflux. This is the
 * primary way that data is brought into the environment for processing.
 *
 * @author Alex Leigh
 */
public interface DataSource {
    /**
     * Return the underlying data associated with this datasource.
     *
     * @return The data.
     * @throws IOException
     * @throws ClassNotFoundException
     */
    EOLoop getData() throws IOException, ClassNotFoundException;

    EO getObject(UUID dstRecordId);
}
