View Javadoc
1   /*
2    * SPDX-FileCopyrightText: Copyright (c) 2011-2026 Yegor Bugayenko
3    * SPDX-License-Identifier: MIT
4    */
5   package com.qulice.maven;
6   
7   import com.qulice.checkstyle.CheckstyleValidator;
8   import com.qulice.errorprone.ErrorProneValidator;
9   import com.qulice.pmd.PmdValidator;
10  import com.qulice.spi.Environment;
11  import com.qulice.spi.ResourceValidator;
12  import com.qulice.spi.Validator;
13  import java.util.Arrays;
14  import java.util.Collection;
15  import java.util.LinkedHashSet;
16  import java.util.Set;
17  
18  /**
19   * Provider of validators.
20   * @since 0.3
21   * @checkstyle ClassDataAbstractionCoupling (500 lines)
22   */
23  final class DefaultValidatorsProvider implements ValidatorsProvider {
24  
25      /**
26       * Environment to use for validation.
27       */
28      private final Environment env;
29  
30      /**
31       * Constructor.
32       * @param env Environment to use for validation
33       */
34      DefaultValidatorsProvider(final Environment env) {
35          this.env = env;
36      }
37  
38      @Override
39      public Set<MavenValidator> internal() {
40          final Set<MavenValidator> validators = new LinkedHashSet<>();
41          validators.add(new PomXpathValidator());
42          validators.add(new EnforcerValidator());
43          validators.add(new DuplicateFinderValidator());
44          validators.add(new DependenciesValidator());
45          validators.add(new SnapshotsValidator());
46          return validators;
47      }
48  
49      @Override
50      public Set<Validator> external() {
51          return new LinkedHashSet<>();
52      }
53  
54      @Override
55      public Collection<ResourceValidator> externalResource() {
56          return Arrays.asList(
57              new CheckstyleValidator(this.env),
58              new PmdValidator(this.env),
59              new ErrorProneValidator(this.env)
60          );
61      }
62  }