package gate.composite;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import gate.Document;
import gate.compound.CompoundDocument;
/**
* Composite document is a result of combining one or more documents altogether.
*
* @author niraj
*
*/
public interface CompositeDocument extends Document {
/**
* Global name for the composite document
*/
public static final String COMPOSITE_DOC_NAME = "Composite";
/**
* Returns the combining Method used for creating the composite document.
* @return
*/
public CombiningMethod getCombiningMethod();
/**
* Sets the combining method used for creating the composite document.
* @param combiningMethod
*/
public void setCombiningMethod(CombiningMethod combiningMethod);
/**
* This method returns the original offset in its source document
* @param srcDocumentID
* @param offset
* @return -1 if the provided offset has no linking with the sourceDocument
*/
public long getOffsetInSrcDocument(String srcDocumentID, long offset);
public void setOffsetMappingInformation(HashMap<String, List<OffsetDetails>> offsetMappings);
/**
* return the IDs of combined documents
* @return
*/
public Set<String> getCombinedDocumentsIds();
/**
* Sets the combined documents IDs
* @param combinedDocumentsIds
*/
public void setCombinedDocumentsIds(Set<String> combinedDocumentsIds);
/**
* This method returns the compoundDocument whose member this composite document is.
* @return
*/
public CompoundDocument getCompoundDocument();
public void setCompoundDocument(CompoundDocument compoundDocument);
}