View Javadoc

1   //
2   //Author       : t.wood
3   //Copyright    : (c) Resilient Networks plc 2012 - All Rights Reserved
4   //
5   package com.lexicalscope.jewel.cli.validation;
6   
7   import com.lexicalscope.fluent.map.PutVeto;
8   import com.lexicalscope.jewel.cli.ValidationErrorBuilder;
9   import com.lexicalscope.jewel.cli.specification.ParsedOptionSpecification;
10  
11  import java.util.List;
12  
13  public class ReportWrongNumberOfValues implements PutVeto<ParsedOptionSpecification, List<String>>
14  {
15     private final ValidationErrorBuilder validationErrorBuilder;
16  
17     public ReportWrongNumberOfValues(final ValidationErrorBuilder validationErrorBuilder)
18     {
19        this.validationErrorBuilder = validationErrorBuilder;
20     }
21  
22     @Override
23     public boolean allow(final ParsedOptionSpecification key, final List<String> values)
24     {
25        if (!key.allowedThisManyValues(values.size()))
26        {
27            validationErrorBuilder.wrongNumberOfValues(key, values);
28            return false;
29        }
30        return true;
31     }
32  }