Ignore:
Timestamp:
2018-11-07T21:38:22+01:00 (4 months ago)
Author:
michael2402
Message:

See #16866: Drop getopt, use own option parser.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/projection/ProjectionCLI.java

    r14118 r14415  
    1212import java.nio.file.Paths;
    1313import java.util.ArrayList;
     14import java.util.Arrays;
    1415import java.util.List;
    1516import java.util.function.Function;
     
    1920import org.openstreetmap.josm.data.coor.LatLon;
    2021import org.openstreetmap.josm.data.coor.conversion.LatLonParser;
    21 import org.openstreetmap.josm.tools.I18n;
     22import org.openstreetmap.josm.tools.OptionParser;
    2223import org.openstreetmap.josm.tools.Utils;
    23 
    24 import gnu.getopt.Getopt;
    25 import gnu.getopt.LongOpt;
    2624
    2725/**
     
    4442    @Override
    4543    public void processArguments(String[] argArray) {
    46         Getopt.setI18nHandler(I18n::tr);
    47         Getopt getopt = new Getopt("JOSM projection", argArray, "Irh", new LongOpt[] {
    48                 new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h')});
    49 
    50         int c;
    51         while ((c = getopt.getopt()) != -1) {
    52             switch (c) {
    53             case 'h':
    54                 showHelp();
    55                 System.exit(0);
    56             case 'I':
    57                 argInverse = true;
    58                 break;
    59             case 'r':
    60                 argSwitchInput = true;
    61                 break;
    62             case 's':
    63                 argSwitchOutput = true;
    64                 break;
    65             default:
    66                 // ignore
    67             }
    68         }
     44        List<String> positionalArguments = new OptionParser("JOSM projection")
     45            .addFlagParameter("help", this::showHelp)
     46            .addShortAlias("help", "h")
     47            .addFlagParameter("inverse", () -> argInverse = true)
     48            .addShortAlias("inverse", "I")
     49            .addFlagParameter("switch-input", () -> argSwitchInput = true)
     50            .addShortAlias("switch-input", "r")
     51            .addFlagParameter("switch-output", () -> argSwitchOutput = true)
     52            .addShortAlias("switch-output", "s")
     53            .parseOptionsOrExit(Arrays.asList(argArray));
    6954
    7055        List<String> projParamFrom = new ArrayList<>();
     
    7358        boolean toTokenSeen = false;
    7459        // positional arguments:
    75         for (int i = getopt.getOptind(); i < argArray.length; ++i) {
    76             String arg = argArray[i];
     60        for (String arg: positionalArguments) {
    7761            if (arg.isEmpty()) throw new IllegalArgumentException("non-empty argument expected");
    7862            if (arg.startsWith("+")) {
     
    10084     * Displays help on the console
    10185     */
    102     public static void showHelp() {
     86    private void showHelp() {
    10387        System.out.println(getHelp());
     88        System.exit(0);
    10489    }
    10590
Note: See TracChangeset for help on using the changeset viewer.