From 8709ade69fdff3ec438399bea2e3336a1aefe786 Mon Sep 17 00:00:00 2001 From: Romain PELISSE Date: Mon, 6 Aug 2012 19:54:57 +0200 Subject: [PATCH] Add a positive value validator for the threads option --- .../net/sourceforge/pmd/cli/PMDParameters.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pmd/src/main/java/net/sourceforge/pmd/cli/PMDParameters.java b/pmd/src/main/java/net/sourceforge/pmd/cli/PMDParameters.java index c22d6e4d21..848cf60edf 100644 --- a/pmd/src/main/java/net/sourceforge/pmd/cli/PMDParameters.java +++ b/pmd/src/main/java/net/sourceforge/pmd/cli/PMDParameters.java @@ -1,15 +1,12 @@ package net.sourceforge.pmd.cli; -import java.util.ArrayList; -import java.util.List; import java.util.Properties; import net.sourceforge.pmd.PMDConfiguration; import net.sourceforge.pmd.RulePriority; -import net.sourceforge.pmd.cpd.Language; import net.sourceforge.pmd.lang.LanguageVersion; -import net.sourceforge.pmd.lang.LanguageVersionDiscoverer; +import com.beust.jcommander.IParameterValidator; import com.beust.jcommander.IStringConverter; import com.beust.jcommander.Parameter; import com.beust.jcommander.ParameterException; @@ -34,7 +31,7 @@ public class PMDParameters { @Parameter(names= {"-encoding", "-e"} , description = "specifies the character set encoding of the source code files PMD is reading (i.e., UTF-8)") private String encoding = "UTF-8"; - @Parameter(names = {"-threads", "-t"}, description = "set the number of threads used by PMD") + @Parameter(names = {"-threads", "-t"}, description = "set the number of threads used by PMD", validateWith=PositiveIntegerValidator.class) private Integer threads = 1; @Parameter(names = {"-benchmark", "-b"}, description = "Benchmark mode - output a benchmark report upon completion; default to System.err") @@ -87,6 +84,14 @@ public class PMDParameters { } } + class PositiveIntegerValidator implements IParameterValidator { + + public void validate(String name, String value) throws ParameterException { + if ( Integer.valueOf(value) < 0 ) + throw new ParameterException("Parameter " + name + " should be positive (found " + value +")"); + } + } + class RulePriorityConverter implements IStringConverter { public int validate(String value) throws ParameterException {