View Javadoc
1   /*
2    * SPDX-FileCopyrightText: Copyright (c) 2011-2025 Yegor Bugayenko
3    * SPDX-License-Identifier: MIT
4    */
5   package com.qulice.maven;
6   
7   import com.qulice.checkstyle.CheckstyleValidator;
8   import com.qulice.pmd.PmdValidator;
9   import com.qulice.spi.Environment;
10  import com.qulice.spi.ResourceValidator;
11  import com.qulice.spi.Validator;
12  import java.util.Arrays;
13  import java.util.Collection;
14  import java.util.LinkedHashSet;
15  import java.util.Set;
16  
17  /**
18   * Provider of validators.
19   *
20   * @since 0.3
21   * @checkstyle ClassDataAbstractionCoupling (500 lines)
22   */
23  final class DefaultValidatorsProvider implements ValidatorsProvider {
24      /**
25       * Environment to use for validation.
26       */
27      private final Environment env;
28  
29      /**
30       * Constructor.
31       * @param env Environment to use for validation.
32       */
33      DefaultValidatorsProvider(final Environment env) {
34          this.env = env;
35      }
36  
37      @Override
38      public Set<MavenValidator> internal() {
39          final Set<MavenValidator> validators = new LinkedHashSet<>();
40          validators.add(new PomXpathValidator());
41          validators.add(new EnforcerValidator());
42          validators.add(new DuplicateFinderValidator());
43          validators.add(new SvnPropertiesValidator());
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          );
60      }
61  }