001 /*
002
003 $Id: PartOfFilePlugin.java,v 1.3 2003/03/26 23:07:42 culdesac Exp $
004
005 */
006
007 package sharpster.common;
008
009 import java.util.LinkedList;
010
011 /**
012 * An interface which should be implemented by all types of pluginData classes.
013 */
014 public interface PartOfFilePlugin {
015
016 /**
017 * Returns the name of the plug-in which has created this data.
018 */
019 public String getPluginName();
020
021 /**
022 * Retrns a description of this plug-in.
023 */
024 public String getPluginDescription();
025
026 /**
027 * Parse a commandline argument and convert it to a specific plugin data.
028 */
029 public PluginData parseArguments(LinkedList args);
030
031 /**
032 * Extract the shared parts from a file collection.
033 */
034 public ResponseCollection extractParts(SharedFile originalFile, String role);
035
036 /**
037 * Merge the shared parts with the entire files.
038 */
039 public ResponseCollection mergeParts(SharedFile originalFile,
040 SharedFile partOfFile,
041 String role);
042 }