From 9210cf41cbe9339f632fb2a1b44d4e6fba42dcf9 Mon Sep 17 00:00:00 2001
From: Vojtech Moravec <vojtech.moravec.st@vsb.cz>
Date: Mon, 24 Aug 2020 14:24:23 +0200
Subject: [PATCH] Create reusable CLI Options in factory methods.

---
 .../java/azgracompress/cli/CliConstants.java  | 42 +++++++++++++------
 1 file changed, 29 insertions(+), 13 deletions(-)

diff --git a/src/main/java/azgracompress/cli/CliConstants.java b/src/main/java/azgracompress/cli/CliConstants.java
index 98f8dbb..e07700f 100644
--- a/src/main/java/azgracompress/cli/CliConstants.java
+++ b/src/main/java/azgracompress/cli/CliConstants.java
@@ -91,19 +91,13 @@ public class CliConstants {
         methodGroup.addOption(new Option(CliConstants.HELP_SHORT, CliConstants.HELP_LONG, false, "Print help"));
 
         OptionGroup compressionMethodGroup = new OptionGroup();
-        compressionMethodGroup.addOption(new Option(CliConstants.SCALAR_QUANTIZATION_SHORT,
-                                                    CliConstants.SCALAR_QUANTIZATION_LONG,
-                                                    false,
-                                                    "Use scalar quantization."));
+        compressionMethodGroup.addOption(createSQOption());
 
-        compressionMethodGroup.addOption(new Option(CliConstants.VECTOR_QUANTIZATION_SHORT,
-                                                    CliConstants.VECTOR_QUANTIZATION_LONG,
-                                                    true,
-                                                    "Use vector quantization. Need to pass vector size eg. 9,9x1,3x3"));
+        compressionMethodGroup.addOption(createVQOption());
 
         options.addOptionGroup(methodGroup);
         options.addOptionGroup(compressionMethodGroup);
-        options.addOption(CliConstants.BITS_SHORT, CliConstants.BITS_LONG, true, "Bit count per pixel [Default 8]");
+        options.addOption(createBitsOption());
 
         options.addOption(CliConstants.USE_MIDDLE_PLANE_SHORT,
                           CliConstants.USE_MIDDLE_PLANE_LONG,
@@ -120,13 +114,35 @@ public class CliConstants {
                                      true,
                                      "Number of worker threads"));
 
-        options.addOption(new Option(CliConstants.CODEBOOK_CACHE_FOLDER_SHORT,
-                                     CliConstants.CODEBOOK_CACHE_FOLDER_LONG,
-                                     true,
-                                     "Folder of codebook caches"));
+        options.addOption(createCBCMethod());
 
         options.addOption(CliConstants.OUTPUT_SHORT, CliConstants.OUTPUT_LONG, true, "Custom output file");
         return options;
     }
 
+    public static Option createBitsOption() {
+        return new Option(CliConstants.BITS_SHORT, CliConstants.BITS_LONG, true, "Bit count per pixel [Default 8]");
+    }
+
+    public static Option createCBCMethod() {
+        return new Option(CliConstants.CODEBOOK_CACHE_FOLDER_SHORT,
+                          CliConstants.CODEBOOK_CACHE_FOLDER_LONG,
+                          true,
+                          "Folder of codebook caches");
+    }
+
+    public static Option createSQOption() {
+        return new Option(CliConstants.SCALAR_QUANTIZATION_SHORT,
+                          CliConstants.SCALAR_QUANTIZATION_LONG,
+                          false,
+                          "Use scalar quantization.");
+    }
+
+    public static Option createVQOption() {
+        return new Option(CliConstants.VECTOR_QUANTIZATION_SHORT,
+                          CliConstants.VECTOR_QUANTIZATION_LONG,
+                          true,
+                          "Use vector quantization. Need to pass vector size eg. 9,9x1,3x3");
+    }
+
 }
-- 
GitLab