From 3f2fe9b7ea12aca6188d2d86ad1858a30f6305cd Mon Sep 17 00:00:00 2001
From: ribeaudc <ribeaudc>
Date: Wed, 18 Jun 2008 10:19:42 +0000
Subject: [PATCH] fix: - Wrong program name in help when 'HCSImageChecker' gets
 called.

SVN: 6682
---
 .../cisd/bds/check/AbstractChecker.java       |  8 +--
 .../cisd/bds/check/HCSImageChecker.java       |  4 +-
 .../systemsx/cisd/bds/check/Parameters.java   | 64 +++++++++----------
 .../cisd/bds/check/StructureChecker.java      |  4 +-
 4 files changed, 39 insertions(+), 41 deletions(-)

diff --git a/bds/source/java/ch/systemsx/cisd/bds/check/AbstractChecker.java b/bds/source/java/ch/systemsx/cisd/bds/check/AbstractChecker.java
index 2033bec987e..c44edce5bd9 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/check/AbstractChecker.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/check/AbstractChecker.java
@@ -414,15 +414,15 @@ public abstract class AbstractChecker
     /**
      * Creates a {@link File} extracting it's name from method parameters
      */
-    protected static File getBdsDirectory(final String[] args)
+    protected static File getBdsDirectory(final String[] args, final String programName)
     {
-        final File file = new Parameters(args).getFile();
+        final File file = new Parameters(args, programName).getFile();
         return file;
     }
 
-    protected static boolean getVerbose(final String[] args)
+    protected static boolean getVerbose(final String[] args, final String programName)
     {
-        return new Parameters(args).getVerbose();
+        return new Parameters(args, programName).getVerbose();
     }
 
     protected IFile getFileOrFail(final IDirectory dataDir, final String name)
diff --git a/bds/source/java/ch/systemsx/cisd/bds/check/HCSImageChecker.java b/bds/source/java/ch/systemsx/cisd/bds/check/HCSImageChecker.java
index 287bd4c6d98..fc88f440b61 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/check/HCSImageChecker.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/check/HCSImageChecker.java
@@ -51,10 +51,10 @@ public class HCSImageChecker extends AbstractChecker
     {
         try
         {
-            final File bdsDirectory = getBdsDirectory(args);
+            final File bdsDirectory = getBdsDirectory(args, HCSImageChecker.class.getName());
 
             final ProblemReport report =
-                    new HCSImageChecker(getVerbose(args))
+                    new HCSImageChecker(getVerbose(args, HCSImageChecker.class.getName()))
                             .getHCSImageConsistencyReport(bdsDirectory);
             printReportAndExit(report);
         } catch (final Exception e)
diff --git a/bds/source/java/ch/systemsx/cisd/bds/check/Parameters.java b/bds/source/java/ch/systemsx/cisd/bds/check/Parameters.java
index cbda44d19d6..ab1557d4afb 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/check/Parameters.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/check/Parameters.java
@@ -37,7 +37,7 @@ import ch.systemsx.cisd.common.utilities.SystemExit;
  * 
  * @author Christian Ribeaud
  */
-public final class Parameters
+final class Parameters
 {
     @Argument()
     private final List<String> args = new ArrayList<String>();
@@ -45,6 +45,34 @@ public final class Parameters
     @Option(name = "v", longName = "verbose", skipForExample = true, usage = "Show more detailed problem report.")
     private boolean verbose;
 
+    private final String programName;
+
+    Parameters(final String[] args, final String programName)
+    {
+        this(args, programName, SystemExit.SYSTEM_EXIT);
+    }
+
+    Parameters(final String[] args, final String programName, final IExitHandler systemExitHandler)
+    {
+        this.programName = programName;
+        try
+        {
+            parser.parseArgument(args);
+            if (getArgs().size() != 1)
+            {
+                System.err.println(String.format("Exactly one %s file must be specified.",
+                        "base directory"));
+                printHelp(true);
+            }
+        } catch (final Exception ex)
+        {
+            outputException(ex);
+            systemExitHandler.exit(1);
+            // Only reached in unit tests.
+            throw new AssertionError(ex.getMessage());
+        }
+    }
+
     /**
      * The command line parser.
      */
@@ -53,7 +81,7 @@ public final class Parameters
     @Option(name = "h", longName = "help", skipForExample = true, usage = "Shows this help text.")
     void printHelp(final boolean exit)
     {
-        parser.printHelp(getProgramName(), "[option [...]]", "<base-directory>", ExampleMode.ALL);
+        parser.printHelp(programName, "[option [...]]", "<base-directory>", ExampleMode.ALL);
         if (exit)
         {
             System.exit(0);
@@ -63,7 +91,7 @@ public final class Parameters
     @Option(longName = "version", skipForExample = true, usage = "Prints out the version information.")
     void printVersion(final boolean exit)
     {
-        System.err.println(getProgramName() + " version "
+        System.err.println(programName + " version "
                 + BuildAndEnvironmentInfo.INSTANCE.getFullVersion());
         if (exit)
         {
@@ -71,36 +99,6 @@ public final class Parameters
         }
     }
 
-    private final static String getProgramName()
-    {
-        return StructureChecker.class.getName();
-    }
-
-    Parameters(final String[] args)
-    {
-        this(args, SystemExit.SYSTEM_EXIT);
-    }
-
-    Parameters(final String[] args, final IExitHandler systemExitHandler)
-    {
-        try
-        {
-            parser.parseArgument(args);
-            if (getArgs().size() != 1)
-            {
-                System.err.println(String.format("Exactly one %s file must be specified.",
-                        "base directory"));
-                printHelp(true);
-            }
-        } catch (final Exception ex)
-        {
-            outputException(ex);
-            systemExitHandler.exit(1);
-            // Only reached in unit tests.
-            throw new AssertionError(ex.getMessage());
-        }
-    }
-
     private final void outputException(final Exception ex)
     {
         if (ex instanceof UserFailureException || ex instanceof CmdLineException)
diff --git a/bds/source/java/ch/systemsx/cisd/bds/check/StructureChecker.java b/bds/source/java/ch/systemsx/cisd/bds/check/StructureChecker.java
index a14a40e102c..5e673928417 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/check/StructureChecker.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/check/StructureChecker.java
@@ -52,9 +52,9 @@ public final class StructureChecker extends AbstractChecker
     {
         try
         {
-            final File bdsDirectory = getBdsDirectory(args);
+            final File bdsDirectory = getBdsDirectory(args, StructureChecker.class.getName());
             final ProblemReport report =
-                    new StructureChecker(getVerbose(args))
+                    new StructureChecker(getVerbose(args, StructureChecker.class.getName()))
                             .getStructureConsistencyReport(bdsDirectory);
             printReportAndExit(report);
         } catch (final Exception e)
-- 
GitLab