• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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