package ecologylab.bigsemantics.collecting;
import ecologylab.bigsemantics.metadata.builtins.Document;
import ecologylab.bigsemantics.metametadata.MetaMetadata;
import ecologylab.net.ParsedURL;
/**
* Help handle document creation.
*
* @author andruid
*/
public interface DocumentMapHelper<D extends Document> extends
ConditionalValueFactory<ParsedURL, D>
{
/**
* Create a document using the given meta-metadata, and set its location using the 2nd parameter.
*
* @param mmd
* @param location
* @return
*/
D constructValue(MetaMetadata mmd, ParsedURL location);
/**
* @return A special object reference used to denote a recycled document.
*/
D recycledValue();
/**
* @return A special object reference used to denote an undefined document.
*/
D undefinedValue();
}