package com.robonobo.mina.external.source; import java.io.File; import java.io.IOException; import java.io.Serializable; import com.robonobo.mina.external.buffer.PageBuffer; /** * A Source is an abstract concept of the original source of data. * * This data is not necessarily in pages, it is probably unparsed and * may not be randomly accessible. A SeekableSource can be provided * directly to SourcePageBuffer to create a PageBuffer based on a file, * for example. * * A Broadcast is created with a Source and will internally implement some * sort of Source => Page transformation. * * @author ray * */ public interface Source extends Serializable { public String getName(); public String getSourceUrl() throws SourceException; /** * @param workingDir This directory will be used to persist metadata files */ public PageBuffer getPageBuffer() throws IOException; }