Class AbstractUserArgumentProcessor

  • All Implemented Interfaces:
    UserArgumentProcessor
    Direct Known Subclasses:
    CeUserArgumentProcessor, FatCatUserArgumentProcessor, SmithWatermanUserArgumentProcessor

    public abstract class AbstractUserArgumentProcessor
    extends Object
    implements UserArgumentProcessor
    Base class for a new structure alignment CLI.

    To add a new StructureAlignment with a CLI similar to CE or FATCAT,

    1. Implement StructureAlignment with the main algorithm
    2. Implement ConfigStrucAligParams. This provides the parameters for the GUI.
    3. Subclass StartupParameters (can be an inner class) with the same parameters described in the ConfigStrucAligParams.
    4. Subclass AbstractUserArgumentProcessor, with the getStartupParams() method returning a fresh instance of the custom StartupParameters
    5. Implement the getParameters() method to copy values from the StartupParameters to the ConfigStrucAligParams.

    Note that reflection is used in a number of places, so the CLI argument names must match the get/set functions in both parameter beans.

    • AlignmentGUI automatically takes parameter names and types from the ConfigStrucAligParams
    • AbstractUserArgumentProcessor also takes parameter names and help descriptions from ConfigStrucAligParams, but it saves arguments to the StartupParameter bean.
    This means that both beans should be kept in sync.
    Author:
    Andreas, Spencer