001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm;
003
004/**
005 * A command line interface module.
006 * <p>
007 * The user can provide an action keyword as first argument. This will invoke the
008 * corresponding {@code CLIModule}, which has its own set of options and will do
009 * a specific job.
010 * @since 12793
011 */
012public interface CLIModule {
013
014    /**
015     * Get the action keyword that the user needs to provide as first command
016     * line argument to invoke this module.
017     * @return the action keyword of this module
018     */
019    String getActionKeyword();
020
021    /**
022     * Process the remaining command line arguments and run any of the requested actions.
023     * @param argArray command line arguments without the initial action keyword
024     */
025    void processArguments(String[] argArray);
026
027}