View Javadoc
1   /*
2    * SPDX-FileCopyrightText: Copyright (c) 2011-2026 Yegor Bugayenko
3    * SPDX-License-Identifier: MIT
4    */
5   package com.qulice.pmd;
6   
7   import com.qulice.spi.Environment;
8   import java.io.File;
9   import java.nio.charset.Charset;
10  import java.util.Collection;
11  
12  /**
13   * Environment decorator that reports every file as excluded for any check.
14   *
15   * <p>Used to exercise the short-circuit path in {@link PmdValidator} when
16   * all inputs match an exclude pattern. The default
17   * {@link Environment.Mock} always answers {@code false} to
18   * {@link Environment#exclude(String, String)}, so a decorator is required
19   * to simulate a fully-excluded configuration.</p>
20   *
21   * @since 0.24.2
22   */
23  final class ExcludingEnvironment implements Environment {
24  
25      /**
26       * Origin environment to delegate to.
27       */
28      private final Environment origin;
29  
30      /**
31       * Ctor.
32       *
33       * @param env Environment to delegate to
34       */
35      ExcludingEnvironment(final Environment env) {
36          this.origin = env;
37      }
38  
39      @Override
40      public File basedir() {
41          return this.origin.basedir();
42      }
43  
44      @Override
45      public File tempdir() {
46          return this.origin.tempdir();
47      }
48  
49      @Override
50      public File outdir() {
51          return this.origin.outdir();
52      }
53  
54      @Override
55      public Collection<File> testdirs() {
56          return this.origin.testdirs();
57      }
58  
59      @Override
60      public String param(final String name, final String value) {
61          return this.origin.param(name, value);
62      }
63  
64      @Override
65      public ClassLoader classloader() {
66          return this.origin.classloader();
67      }
68  
69      @Override
70      public Collection<String> classpath() {
71          return this.origin.classpath();
72      }
73  
74      @Override
75      public Collection<File> files(final String pattern) {
76          return this.origin.files(pattern);
77      }
78  
79      @Override
80      public boolean exclude(final String check, final String name) {
81          return true;
82      }
83  
84      @Override
85      public Collection<String> excludes(final String checker) {
86          return this.origin.excludes(checker);
87      }
88  
89      @Override
90      public Charset encoding() {
91          return this.origin.encoding();
92      }
93  }