1 package com.beust.jcommander.args; 2 3 import com.beust.jcommander.IParameterValidator; 4 import com.beust.jcommander.IValueValidator; 5 import com.beust.jcommander.Parameter; 6 import com.beust.jcommander.ParameterException; 7 import com.beust.jcommander.validators.PositiveInteger; 8 9 public class ArgsMultiValidate { 10 11 public static class OddIntegerParameterValidator implements IParameterValidator { 12 @Override validate(String name, String value)13 public void validate(String name, String value) throws ParameterException { 14 if(Integer.parseInt(value) %2 != 1) throw new ParameterException("param "+name+"="+value+" is not odd"); 15 } 16 } 17 18 public static class LowerThan100ValueValidator implements IValueValidator<Integer> { 19 @Override validate(String name, Integer value)20 public void validate(String name, Integer value) throws ParameterException { 21 if(value >= 100) throw new ParameterException("param "+name+"="+value+" is greater than 100"); 22 } 23 } 24 25 public static class GreaterTha0ValueValidator implements IValueValidator<Integer> { 26 @Override validate(String name, Integer value)27 public void validate(String name, Integer value) throws ParameterException { 28 if(value <= 0) throw new ParameterException("param "+name+"="+value+" is lower than 1"); 29 } 30 } 31 32 @Parameter(names = "-age", 33 validateWith = {PositiveInteger.class,OddIntegerParameterValidator.class}, 34 validateValueWith={GreaterTha0ValueValidator.class,LowerThan100ValueValidator.class}) 35 public int age=29; 36 } 37