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    }