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