فهرست منبع

Fix remaining code duplication in LanguageOption.

Sebastian Hahner 5 سال پیش
والد
کامیت
733997b2f7
2فایلهای تغییر یافته به همراه13 افزوده شده و 2 حذف شده
  1. 4 1
      jplag/src/main/java/jplag/CLI.java
  2. 9 1
      jplag/src/main/java/jplag/options/LanguageOption.java

+ 4 - 1
jplag/src/main/java/jplag/CLI.java

@@ -57,7 +57,10 @@ public class CLI {
         parser = ArgumentParsers.newFor(PROGRAM_NAME).build().defaultHelp(true).description(DESCRIPTION);
         parser = ArgumentParsers.newFor(PROGRAM_NAME).build().defaultHelp(true).description(DESCRIPTION);
 
 
         parser.addArgument("rootDir").help("The root-directory that contains all submissions");
         parser.addArgument("rootDir").help("The root-directory that contains all submissions");
-        parser.addArgument("-l").choices(LanguageOption.getAllDisplayNames()).setDefault("java9").help("Select the language to parse the submissions");
+        parser.addArgument("-l")
+                .choices(LanguageOption.getAllDisplayNames())
+                .setDefault(LanguageOption.getDefault().getDisplayName())
+                .help("Select the language to parse the submissions");
         parser.addArgument("-bc").help("Name of the directory which contains the base code (common framework)");
         parser.addArgument("-bc").help("Name of the directory which contains the base code (common framework)");
         parser.addArgument("-v").choices(verbosityOptions).setDefault("quiet").help("Verbosity");
         parser.addArgument("-v").choices(verbosityOptions).setDefault("quiet").help("Verbosity");
         parser.addArgument("-d").help("(Debug) parser. Non-parsable files will be stored").action(storeTrue());
         parser.addArgument("-d").help("(Debug) parser. Non-parsable files will be stored").action(storeTrue());

+ 9 - 1
jplag/src/main/java/jplag/options/LanguageOption.java

@@ -33,11 +33,15 @@ public enum LanguageOption {
         return this.classPath;
         return this.classPath;
     }
     }
 
 
+    public String getDisplayName() {
+        return this.displayName;
+    }
+
     public static LanguageOption fromDisplayName(String displayName) {
     public static LanguageOption fromDisplayName(String displayName) {
         return Arrays.stream(LanguageOption.values())
         return Arrays.stream(LanguageOption.values())
                 .filter(languageOption -> languageOption.displayName.equals(displayName))
                 .filter(languageOption -> languageOption.displayName.equals(displayName))
                 .findFirst()
                 .findFirst()
-                .orElse(LanguageOption.JAVA_1_9);
+                .orElse(getDefault());
     }
     }
 
 
     public static String[] getAllDisplayNames() {
     public static String[] getAllDisplayNames() {
@@ -45,4 +49,8 @@ public enum LanguageOption {
                 .map(languageOption -> languageOption.displayName)
                 .map(languageOption -> languageOption.displayName)
                 .toArray(String[]::new);
                 .toArray(String[]::new);
     }
     }
+
+    public static LanguageOption getDefault() {
+        return LanguageOption.JAVA_1_9;
+    }
 }
 }