1 /*
2  * Hibernate Validator, declare and validate application constraints
3  *
4  * License: Apache License, Version 2.0
5  * See the license.txt file in the root directory or <http://www.apache.org/licenses/LICENSE-2.0>.
6  */

7 package org.hibernate.validator.internal.metadata.aggregated;
8
9 import java.util.List;
10 import java.util.stream.Collectors;
11
12 import org.hibernate.validator.internal.metadata.facets.Cascadable;
13 import org.hibernate.validator.internal.metadata.facets.Validatable;
14 import org.hibernate.validator.internal.util.CollectionHelper;
15 import org.hibernate.validator.internal.util.stereotypes.Immutable;
16
17 /**
18  * Represents the constraint related meta data of the arguments of a method or
19  * constructor.
20  *
21  * @author Gunnar Morling
22  */

23 public class ValidatableParametersMetaData implements Validatable {
24
25     @Immutable
26     private final List<ParameterMetaData> parameterMetaData;
27
28     @Immutable
29     private final List<Cascadable> cascadables;
30
31     public ValidatableParametersMetaData(List<ParameterMetaData> parameterMetaData) {
32         this.parameterMetaData = CollectionHelper.toImmutableList( parameterMetaData );
33         this.cascadables = CollectionHelper.toImmutableList( parameterMetaData.stream()
34                 .filter( p -> p.isCascading() )
35                 .collect( Collectors.toList() ) );
36     }
37
38     @Override
39     public Iterable<Cascadable> getCascadables() {
40         return cascadables;
41     }
42
43     @Override
44     public boolean hasCascadables() {
45         return !cascadables.isEmpty();
46     }
47 }
48