This is an automated email from the ASF dual-hosted git repository.

claude pushed a commit to branch feature/restructure
in repository https://gitbox.apache.org/repos/asf/creadur-rat.git

commit 4c826a12cb9a73ff35ea3474e28925a2cdcaf22e
Author: Claude Warren <[email protected]>
AuthorDate: Thu Dec 25 11:49:53 2025 +0000

    cleaned up testing framework
---
 .../src/main/java/org/apache/rat/cli/Report.java   |  37 +---
 .../java/org/apache/rat/cli/ReportOptionsTest.java |   6 +-
 .../test/java/org/apache/rat/cli/ReportTest.java   |   8 +-
 .../src/main/java/org/apache/rat/Reporter.java     |  69 ++++--
 .../java/org/apache/rat/ReporterOptionsTest.java   |   5 +-
 .../src/test/java/org/apache/rat/ReporterTest.java |  10 +-
 .../testhelpers/data/OptionTestDataProvider.java   |  92 ++++----
 .../testhelpers/data/ReportTestDataProvider.java   | 238 ++++++++++-----------
 .../apache/rat/testhelpers/data/ValidatorData.java |  43 +++-
 9 files changed, 274 insertions(+), 234 deletions(-)

diff --git a/apache-rat-cli/src/main/java/org/apache/rat/cli/Report.java 
b/apache-rat-cli/src/main/java/org/apache/rat/cli/Report.java
index 49b97759..3a7e5609 100644
--- a/apache-rat-cli/src/main/java/org/apache/rat/cli/Report.java
+++ b/apache-rat-cli/src/main/java/org/apache/rat/cli/Report.java
@@ -59,15 +59,15 @@ public final class Report {
             System.exit(0);
         }
 
-        CLIOutput result = generateReport(new File("."), args);
-        if (result.output != null) {
-            result.output.writeSummary(DefaultLog.getInstance().asWriter());
+        Reporter.Output result = generateReport(new File("."), args);
+        if (result != null) {
+            result.writeSummary(DefaultLog.getInstance().asWriter());
 
-            if (result.configuration.getClaimValidator().hasErrors()) {
-                
result.configuration.getClaimValidator().logIssues(result.output.getStatistic());
+            if (result.getConfiguration().getClaimValidator().hasErrors()) {
+                
result.getConfiguration().getClaimValidator().logIssues(result.getStatistic());
                 throw new RatDocumentAnalysisException(format("Issues with %s",
                         String.join(", ",
-                                
result.configuration.getClaimValidator().listIssues(result.output.getStatistic()))));
+                                
result.getConfiguration().getClaimValidator().listIssues(result.getStatistic()))));
             }
         }
     }
@@ -92,7 +92,7 @@ public final class Report {
      * @return The Client output.
      * @throws Exception on error.
      */
-    static CLIOutput generateReport(final File workingDirectory, final 
String[] args) throws Exception {
+    static Reporter.Output generateReport(final File workingDirectory, final 
String[] args) throws Exception {
         Reporter.Output output = null;
         ArgumentContext argumentContext = 
OptionCollection.parseCommands(workingDirectory, args, 
CLIOption.ADDITIONAL_OPTIONS);
         ReportConfiguration configuration = argumentContext.getConfiguration();
@@ -110,31 +110,10 @@ public final class Report {
                 output.format(configuration);
             }
         }
-        return new CLIOutput(configuration, output);
+        return output;
     }
 
     private Report() {
         // do not instantiate
     }
-
-    /**
-     * Output from the UI
-     */
-    @SuppressWarnings("VisibilityModifier")
-    static class CLIOutput {
-        /** Output from the Reporter */
-        Reporter.Output output;
-        /** THe configuration that generated the output. */
-        ReportConfiguration configuration;
-
-        /**
-         * Construct client output.
-         * @param configuration the configuration that was used to generate 
the output.
-         * @param output The output from the reporter.
-         */
-        CLIOutput(final ReportConfiguration configuration, final 
Reporter.Output output) {
-            this.output = output;
-            this.configuration = configuration;
-        }
-    }
 }
diff --git 
a/apache-rat-cli/src/test/java/org/apache/rat/cli/ReportOptionsTest.java 
b/apache-rat-cli/src/test/java/org/apache/rat/cli/ReportOptionsTest.java
index ff3191d7..f445cd78 100644
--- a/apache-rat-cli/src/test/java/org/apache/rat/cli/ReportOptionsTest.java
+++ b/apache-rat-cli/src/test/java/org/apache/rat/cli/ReportOptionsTest.java
@@ -21,6 +21,7 @@ package org.apache.rat.cli;
 import java.nio.file.Path;
 import java.util.stream.Stream;
 
+import org.apache.rat.Reporter;
 import org.apache.rat.api.RatException;
 import org.apache.rat.testhelpers.FileUtils;
 import org.apache.rat.testhelpers.data.OptionTestDataProvider;
@@ -77,9 +78,8 @@ public class ReportOptionsTest {
             assertThatThrownBy(() -> Report.generateReport(basePath.toFile(), 
test.getCommandLine(basePath.toString()))
                     
).hasMessageContaining(test.getExpectedException().getMessage());
         } else {
-            Report.CLIOutput result = Report.generateReport(basePath.toFile(), 
test.getCommandLine(basePath.toString()));
-            ValidatorData data = new ValidatorData(
-                    result.output, result.configuration, basePath.toString());
+            Reporter.Output result = Report.generateReport(basePath.toFile(), 
test.getCommandLine(basePath.toString()));
+            ValidatorData data = new ValidatorData(result, 
basePath.toString());
             test.getValidator().accept(data);
         }
     }
diff --git a/apache-rat-cli/src/test/java/org/apache/rat/cli/ReportTest.java 
b/apache-rat-cli/src/test/java/org/apache/rat/cli/ReportTest.java
index eec77048..891fb46e 100644
--- a/apache-rat-cli/src/test/java/org/apache/rat/cli/ReportTest.java
+++ b/apache-rat-cli/src/test/java/org/apache/rat/cli/ReportTest.java
@@ -26,6 +26,7 @@ import java.util.stream.Stream;
 import org.apache.commons.cli.Option;
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.rat.OptionCollection;
+import org.apache.rat.Reporter;
 import org.apache.rat.commandline.Arg;
 import org.apache.rat.testhelpers.FileUtils;
 import org.apache.rat.testhelpers.TextUtils;
@@ -70,7 +71,7 @@ public class ReportTest {
                 DataUtils.NO_SETUP,
                 validatorData -> {
                     try {
-                        String result = 
TextUtils.readFile(validatorData.baseDir.resolve("helpText").toFile());
+                        String result = 
TextUtils.readFile(validatorData.getBaseDir().resolve("helpText").toFile());
                         for (Option option : 
OptionCollection.buildOptions(CLIOption.ADDITIONAL_OPTIONS).getOptions()) {
                             if (option.getOpt() != null) {
                                 TextUtils.assertContains("-" + option.getOpt() 
+ (option.getLongOpt() == null ? " " : ","), result);
@@ -105,9 +106,8 @@ public class ReportTest {
             assertThatThrownBy(() -> Report.generateReport(basePath.toFile(), 
test.getCommandLine(basePath.toString()))
                     
).hasMessageContaining(test.getExpectedException().getMessage());
         } else {
-            Report.CLIOutput result = Report.generateReport(basePath.toFile(), 
test.getCommandLine(basePath.toString()));
-            ValidatorData data = new ValidatorData(
-                    result.output, result.configuration, basePath.toString());
+            Reporter.Output result = Report.generateReport(basePath.toFile(), 
test.getCommandLine(basePath.toString()));
+            ValidatorData data = new ValidatorData(result, 
basePath.toString());
             test.getValidator().accept(data);
         }
     }
diff --git a/apache-rat-core/src/main/java/org/apache/rat/Reporter.java 
b/apache-rat-core/src/main/java/org/apache/rat/Reporter.java
index 98e35e34..36a2d323 100644
--- a/apache-rat-core/src/main/java/org/apache/rat/Reporter.java
+++ b/apache-rat-core/src/main/java/org/apache/rat/Reporter.java
@@ -79,25 +79,25 @@ public class Reporter {
      */
     public Output execute() throws RatException {
         try {
+            Output.Builder builder = 
Output.builder().configuration(configuration);
             if (configuration.hasSource()) {
                 StringBuilder sb = new StringBuilder();
                 try (IXmlWriter writer = new XmlWriter(sb)) {
                     writer.startDocument();
                     ClaimStatistic statistic = new ClaimStatistic();
+                    builder.statistic(statistic);
                     RatReport report = 
XmlReportFactory.createStandardReport(writer, statistic, configuration);
                     report.startReport();
                     configuration.getSources().build().run(report);
                     report.endReport();
                     InputSource inputSource = new InputSource(new 
StringReader(sb.toString()));
-                    output = new 
Output(DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(inputSource),
 statistic);
+                    
builder.document(DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(inputSource));
                 }
-            } else {
-                output = new 
Output(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
             }
+            return builder.build();
         } catch (Exception e) {
             throw RatException.makeRatException(e);
         }
-        return output;
     }
 
     /**
@@ -124,11 +124,10 @@ public class Reporter {
         }
     }
 
-
     /**
      * The output from a report run.
      */
-    public static class Output {
+    public static final class Output {
         /** The XML output document */
         private final Document document;
         /**
@@ -136,23 +135,23 @@ public class Reporter {
          * May be empty if the Document was read from disk.
          */
         private final ClaimStatistic statistic;
-
         /**
-         * Create an output with an empty statistics.
-         * @param document the Document from the output.
+         * The configuraiton that generated the document
          */
-        public Output(final Document document) {
-            this(document, new ClaimStatistic());
-        }
+        private final ReportConfiguration configuration;
 
         /**
          * Create an output with statistics.
-         * @param document the Document from the execution.
-         * @param statistic the statistics from the execution.
+         * @param builder the Builder
          */
-        public Output(final Document document, final ClaimStatistic statistic) 
{
-            this.document = document;
-            this.statistic = statistic;
+        private Output(final Builder builder) {
+            this.document = builder.document;
+            this.statistic = builder.statistic == null ? new ClaimStatistic() 
: builder.statistic;
+            this.configuration = builder.configuration == null ? new 
ReportConfiguration() : builder.configuration;
+        }
+
+        public static Builder builder() {
+            return new Builder();
         }
 
         /**
@@ -167,6 +166,9 @@ public class Reporter {
             return statistic;
         }
 
+        public ReportConfiguration getConfiguration() {
+            return configuration;
+        }
         /**
          * Formats the report to the output and using the stylesheet found in 
the report configuration.
          *
@@ -217,5 +219,38 @@ public class Reporter {
             }
         }
 
+        public static final class Builder {
+            /** The document that was generated */
+            private Document document;
+            /**
+             * The claim statistic from the execution that generated the 
document.
+             * May be empty if the Document was read from disk.
+             */
+            private ClaimStatistic statistic;
+            /**
+             * The configuraiton that generated the document
+             */
+            private ReportConfiguration configuration;
+
+            public Builder document(final Document document) {
+                this.document = document;
+                return this;
+            }
+
+            public Output build() {
+                return new Output(this);
+            }
+
+            public Builder statistic(final ClaimStatistic statistic) {
+                this.statistic = statistic;
+                return this;
+            }
+
+            public Builder configuration(final ReportConfiguration 
configuration) {
+                this.configuration = configuration;
+                return this;
+            }
+
+        }
     }
 }
diff --git 
a/apache-rat-core/src/test/java/org/apache/rat/ReporterOptionsTest.java 
b/apache-rat-core/src/test/java/org/apache/rat/ReporterOptionsTest.java
index 934ff86e..f9ba0c19 100644
--- a/apache-rat-core/src/test/java/org/apache/rat/ReporterOptionsTest.java
+++ b/apache-rat-core/src/test/java/org/apache/rat/ReporterOptionsTest.java
@@ -79,9 +79,8 @@ public final class ReporterOptionsTest {
         Path basePath = testPath.resolve(test.getTestName());
         test.setupFiles(basePath);
         ArgumentContext ctxt = 
OptionCollection.parseCommands(basePath.toFile(), test.getCommandLine());
-        Reporter.Output output = ctxt.getConfiguration() != null ? new 
Reporter(ctxt.getConfiguration()).execute() : null;
-        ValidatorData data = new ValidatorData(
-                output, ctxt.getConfiguration(), basePath.toString());
+        Reporter.Output output = new 
Reporter(ctxt.getConfiguration()).execute();
+        ValidatorData data = new ValidatorData(output, basePath.toString());
         test.getValidator().accept(data);
     }
 
diff --git a/apache-rat-core/src/test/java/org/apache/rat/ReporterTest.java 
b/apache-rat-core/src/test/java/org/apache/rat/ReporterTest.java
index b97fdcc7..9bcc380a 100644
--- a/apache-rat-core/src/test/java/org/apache/rat/ReporterTest.java
+++ b/apache-rat-core/src/test/java/org/apache/rat/ReporterTest.java
@@ -522,13 +522,13 @@ public class ReporterTest {
         if (test.expectingException()) {
             assertThatThrownBy(() -> new 
Reporter(ctxt.getConfiguration()).execute()).as("Expected throws from " + name)
                     
.hasMessageContaining(test.getExpectedException().getMessage());
-            ValidatorData data = new ValidatorData(
-                    null, ctxt.getConfiguration(), basePath.toString());
+            ValidatorData data = new 
ValidatorData(Reporter.Output.builder().configuration(ctxt.getConfiguration()).build(),
+                    basePath.toString());
             test.getValidator().accept(data);
         } else {
-            Reporter.Output output = ctxt.getConfiguration() != null ? new 
Reporter(ctxt.getConfiguration()).execute() : null;
-            ValidatorData data = new ValidatorData(
-                    output, ctxt.getConfiguration(), basePath.toString());
+            Reporter.Output output = ctxt.getConfiguration() != null ? new 
Reporter(ctxt.getConfiguration()).execute() :
+                    Reporter.Output.builder().build();
+            ValidatorData data = new ValidatorData(output, 
basePath.toString());
             test.getValidator().accept(data);
         }
     }
diff --git 
a/apache-rat-core/src/test/java/org/apache/rat/testhelpers/data/OptionTestDataProvider.java
 
b/apache-rat-core/src/test/java/org/apache/rat/testhelpers/data/OptionTestDataProvider.java
index f1c25972..bdb4b03d 100644
--- 
a/apache-rat-core/src/test/java/org/apache/rat/testhelpers/data/OptionTestDataProvider.java
+++ 
b/apache-rat-core/src/test/java/org/apache/rat/testhelpers/data/OptionTestDataProvider.java
@@ -181,7 +181,7 @@ public class OptionTestDataProvider {
                 Collections.singletonList(ImmutablePair.of(option, 
args.get())),
                 preSetup,
                 validatorData -> {
-                    DocumentNameMatcher excluder = 
validatorData.config.getDocumentExcluder(validatorData.getBaseName());
+                    DocumentNameMatcher excluder = 
validatorData.getConfiguration().getDocumentExcluder(validatorData.getBaseName());
                     for (String fname : notExcluded) {
                         DocumentName docName = validatorData.mkDocName(fname);
                         assertThat(excluder.matches(docName)).as(() -> 
dump(option, fname, excluder, docName)).isTrue();
@@ -218,7 +218,7 @@ public class OptionTestDataProvider {
                 Collections.singletonList(ImmutablePair.of(option, new 
String[]{StandardCollection.MISC.name()})),
         DataUtils.NO_SETUP,
         validatorData -> {
-            DocumentNameMatcher excluder = 
validatorData.config.getDocumentExcluder(validatorData.getBaseName());
+            DocumentNameMatcher excluder = 
validatorData.getConfiguration().getDocumentExcluder(validatorData.getBaseName());
             for (String fname : excluded) {
                 DocumentName docName = validatorData.mkDocName(fname);
                 assertThat(excluder.matches(docName)).as(() -> dump(option, 
fname, excluder, docName)).isFalse();
@@ -255,7 +255,7 @@ public class OptionTestDataProvider {
                     FileUtils.mkDir(dir);
                 },
                 validatorData -> {
-                    DocumentNameMatcher excluder = 
validatorData.config.getDocumentExcluder(validatorData.getBaseName());
+                    DocumentNameMatcher excluder = 
validatorData.getConfiguration().getDocumentExcluder(validatorData.getBaseName());
                     for (String fname : excluded) {
                         DocumentName docName = validatorData.mkDocName(fname);
                         assertThat(excluder.matches(docName)).as(() -> 
dump(option, fname, excluder, docName)).isFalse();
@@ -283,7 +283,7 @@ public class OptionTestDataProvider {
         },
                 validatorData -> {
 
-            DocumentNameMatcher excluder = 
validatorData.config.getDocumentExcluder(validatorData.getBaseName());
+            DocumentNameMatcher excluder = 
validatorData.getConfiguration().getDocumentExcluder(validatorData.getBaseName());
             for (String fname : excluded) {
                 DocumentName docName = validatorData.mkDocName(fname);
                 assertThat(excluder.matches(docName)).as(() -> dump(option, 
fname, excluder, docName)).isFalse();
@@ -305,7 +305,7 @@ public class OptionTestDataProvider {
                 ImmutablePair.of(excludeOption, EXCLUDE_ARGS)),
         basePath -> 
setupFiles.accept(DocumentName.builder(basePath.toFile()).build()),
         validatorData -> {
-            DocumentNameMatcher excluder = 
validatorData.config.getDocumentExcluder(validatorData.getBaseName());
+            DocumentNameMatcher excluder = 
validatorData.getConfiguration().getDocumentExcluder(validatorData.getBaseName());
             for (String fname : excluded) {
                 DocumentName docName = validatorData.mkDocName(fname);
                 assertThat(excluder.matches(docName)).as(() -> dump(option, 
fname, excluder, docName)).isFalse();
@@ -343,7 +343,7 @@ public class OptionTestDataProvider {
         TestData test1 = new TestData("", Arrays.asList(excludes, 
ImmutablePair.of(option, args)),
                 DataUtils.NO_SETUP,
         validatorData -> {
-            DocumentNameMatcher excluder = 
validatorData.config.getDocumentExcluder(validatorData.getBaseName());
+            DocumentNameMatcher excluder = 
validatorData.getConfiguration().getDocumentExcluder(validatorData.getBaseName());
             for (String fname : excluded) {
                 DocumentName docName = validatorData.mkDocName(fname);
                 assertThat(excluder.matches(docName)).as(() -> dump(option, 
fname, excluder, docName)).isFalse();
@@ -363,7 +363,7 @@ public class OptionTestDataProvider {
             File input = dirPath.resolve("inputFile.txt").toFile();
             FileUtils.mkDir(input.getParentFile());
         },
-                validatorData -> 
assertThat(validatorData.config.hasSource()).isTrue());
+                validatorData -> 
assertThat(validatorData.getConfiguration().hasSource()).isTrue());
         return Collections.singletonList(test1);
     }
 
@@ -377,7 +377,7 @@ public class OptionTestDataProvider {
         TestData test1 = new TestData("withDefaults", 
Collections.singletonList(arg1),
                 setup,
                 validatorData -> {
-            SortedSet<String> result = 
validatorData.config.getLicenseIds(LicenseSetFactory.LicenseFilter.APPROVED);
+            SortedSet<String> result = 
validatorData.getConfiguration().getLicenseIds(LicenseSetFactory.LicenseFilter.APPROVED);
             assertThat(result).contains("one", "two");
         });
 
@@ -385,7 +385,7 @@ public class OptionTestDataProvider {
         TestData test2 = new TestData("withoutDefaults", Arrays.asList(arg1, 
arg2),
         setup,
         validatorData -> {
-            SortedSet<String> result = 
validatorData.config.getLicenseIds(LicenseSetFactory.LicenseFilter.APPROVED);
+            SortedSet<String> result = 
validatorData.getConfiguration().getLicenseIds(LicenseSetFactory.LicenseFilter.APPROVED);
             assertThat(result).containsExactly("one", "two");
         });
 
@@ -425,8 +425,8 @@ public class OptionTestDataProvider {
         TestData test1 = new TestData("ILLUMOS", 
Collections.singletonList(ImmutablePair.of(option, args)),
         setup,
         validatorData -> {
-            
assertThat(validatorData.config.getLicenseIds(LicenseSetFactory.LicenseFilter.ALL)).contains("ILLUMOS");
-            SortedSet<String> result = 
validatorData.config.getLicenseIds(LicenseSetFactory.LicenseFilter.APPROVED);
+            
assertThat(validatorData.getConfiguration().getLicenseIds(LicenseSetFactory.LicenseFilter.ALL)).contains("ILLUMOS");
+            SortedSet<String> result = 
validatorData.getConfiguration().getLicenseIds(LicenseSetFactory.LicenseFilter.APPROVED);
             assertThat(result).doesNotContain("ILLUMOS");
         });
         return Collections.singletonList(test1);
@@ -449,14 +449,14 @@ public class OptionTestDataProvider {
         TestData test1 = new TestData("withDefaults", 
Collections.singletonList(ImmutablePair.of(option, args)),
                 setup,
                 validatorData -> {
-                    SortedSet<String> result = 
validatorData.config.getLicenseCategories(LicenseSetFactory.LicenseFilter.APPROVED);
+                    SortedSet<String> result = 
validatorData.getConfiguration().getLicenseCategories(LicenseSetFactory.LicenseFilter.APPROVED);
                     assertThat(result).contains(catz);
                 });
 
         TestData test2 = new TestData("withoutDefaults", 
Arrays.asList(ImmutablePair.of(option, args), 
ImmutablePair.of(Arg.CONFIGURATION_NO_DEFAULTS.find("configuration-no-defaults"),
 null)),
                 setup,
                 validatorData -> {
-                    SortedSet<String> result = 
validatorData.config.getLicenseCategories(LicenseSetFactory.LicenseFilter.APPROVED);
+                    SortedSet<String> result = 
validatorData.getConfiguration().getLicenseCategories(LicenseSetFactory.LicenseFilter.APPROVED);
                     assertThat(result).containsExactly(catz);
                 });
         return Arrays.asList(test1, test2);
@@ -478,8 +478,8 @@ public class OptionTestDataProvider {
         TestData test1 = new TestData("GPL", 
Collections.singletonList(ImmutablePair.of(option, args)),
 setup,
         validatorData -> {
-            
assertThat(validatorData.config.getLicenseCategories(LicenseSetFactory.LicenseFilter.ALL)).contains(gpl);
-            SortedSet<String> result = 
validatorData.config.getLicenseCategories(LicenseSetFactory.LicenseFilter.APPROVED);
+            
assertThat(validatorData.getConfiguration().getLicenseCategories(LicenseSetFactory.LicenseFilter.ALL)).contains(gpl);
+            SortedSet<String> result = 
validatorData.getConfiguration().getLicenseCategories(LicenseSetFactory.LicenseFilter.APPROVED);
             assertThat(result).doesNotContain(gpl);
         });
         return Collections.singletonList(test1);
@@ -501,22 +501,22 @@ setup,
 
         TestData test1 = new TestData(DataUtils.asDirName(option), 
Collections.singletonList(ImmutablePair.nullPair()),
                 DataUtils.NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.getClaimValidator().getMin(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(0));
+                validatorData -> 
assertThat(validatorData.getConfiguration().getClaimValidator().getMin(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(0));
 
         TestData test2 = new TestData("negativeValue", 
Collections.singletonList(ImmutablePair.of(option,
                 new String[]{"Unapproved:-1", "ignored:1"})),
                 DataUtils.NO_SETUP,
                 validatorData -> {
-                    
assertThat(validatorData.config.getClaimValidator().getMax(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(Integer.MAX_VALUE);
-                    
assertThat(validatorData.config.getClaimValidator().getMax(ClaimStatistic.Counter.IGNORED)).isEqualTo(1);
+                    
assertThat(validatorData.getConfiguration().getClaimValidator().getMax(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(Integer.MAX_VALUE);
+                    
assertThat(validatorData.getConfiguration().getClaimValidator().getMax(ClaimStatistic.Counter.IGNORED)).isEqualTo(1);
                 });
 
         TestData test3 = new TestData("standardValue", 
Collections.singletonList(ImmutablePair.of(option,
                 new String[]{"Unapproved:5", "ignored:0"})),
 DataUtils.NO_SETUP,
                 validatorData -> {
-                    
assertThat(validatorData.config.getClaimValidator().getMax(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(5);
-                    
assertThat(validatorData.config.getClaimValidator().getMax(ClaimStatistic.Counter.IGNORED)).isEqualTo(0);
+                    
assertThat(validatorData.getConfiguration().getClaimValidator().getMax(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(5);
+                    
assertThat(validatorData.getConfiguration().getClaimValidator().getMax(ClaimStatistic.Counter.IGNORED)).isEqualTo(0);
                 });
 
         return Arrays.asList(test1, test2, test3);
@@ -527,30 +527,30 @@ DataUtils.NO_SETUP,
 
         TestData test1 = new TestData(DataUtils.asDirName(option), 
Collections.singletonList(ImmutablePair.nullPair()),
                 DataUtils.NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.getClaimValidator().getMin(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(0));
+                validatorData -> 
assertThat(validatorData.getConfiguration().getClaimValidator().getMin(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(0));
 
         String[] args = {"Unapproved:1", "ignored:1"};
         TestData test2 = new TestData("capitalized", 
Collections.singletonList(ImmutablePair.of(option, args)),
                 DataUtils.NO_SETUP,
                 validatorData -> {
-                    
assertThat(validatorData.config.getClaimValidator().getMin(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(1);
-                    
assertThat(validatorData.config.getClaimValidator().getMin(ClaimStatistic.Counter.IGNORED)).isEqualTo(1);
+                    
assertThat(validatorData.getConfiguration().getClaimValidator().getMin(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(1);
+                    
assertThat(validatorData.getConfiguration().getClaimValidator().getMin(ClaimStatistic.Counter.IGNORED)).isEqualTo(1);
                 });
 
         args = new String[]{"unapproved:5", "ignored:0"};
         TestData test3 = new TestData("lowerCase", 
Collections.singletonList(ImmutablePair.of(option, args)),
                 DataUtils.NO_SETUP,
                 validatorData -> {
-                    
assertThat(validatorData.config.getClaimValidator().getMin(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(5);
-                    
assertThat(validatorData.config.getClaimValidator().getMin(ClaimStatistic.Counter.IGNORED)).isEqualTo(0);
+                    
assertThat(validatorData.getConfiguration().getClaimValidator().getMin(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(5);
+                    
assertThat(validatorData.getConfiguration().getClaimValidator().getMin(ClaimStatistic.Counter.IGNORED)).isEqualTo(0);
                 });
 
         args = new String[]{"unapproved:-5", "ignored:0"};
         TestData test4 = new TestData("negativeValue", 
Collections.singletonList(ImmutablePair.of(option, args)),
                 DataUtils.NO_SETUP,
                 validatorData -> {
-                    
assertThat(validatorData.config.getClaimValidator().getMin(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(-5);
-                    
assertThat(validatorData.config.getClaimValidator().getMin(ClaimStatistic.Counter.IGNORED)).isEqualTo(0);
+                    
assertThat(validatorData.getConfiguration().getClaimValidator().getMin(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(-5);
+                    
assertThat(validatorData.getConfiguration().getClaimValidator().getMin(ClaimStatistic.Counter.IGNORED)).isEqualTo(0);
                 });
 
         return Arrays.asList(test1, test2, test3, test4);
@@ -571,7 +571,7 @@ DataUtils.NO_SETUP,
         TestData test1 = new TestData("withDefaults", 
Collections.singletonList(ImmutablePair.of(option, args)),
                 setupFiles,
                 validatorData -> {
-                    SortedSet<ILicense> set = 
validatorData.config.getLicenses(LicenseSetFactory.LicenseFilter.ALL);
+                    SortedSet<ILicense> set = 
validatorData.getConfiguration().getLicenses(LicenseSetFactory.LicenseFilter.ALL);
                     assertThat(set).hasSizeGreaterThan(2);
                     assertThat(LicenseSetFactory.search("ONE", "ONE", 
set)).isPresent();
                     assertThat(LicenseSetFactory.search("TWO", "TWO", 
set)).isPresent();
@@ -582,7 +582,7 @@ DataUtils.NO_SETUP,
                 setupFiles,
                 validatorData -> {
 
-                    SortedSet<ILicense> set = 
validatorData.config.getLicenses(LicenseSetFactory.LicenseFilter.ALL);
+                    SortedSet<ILicense> set = 
validatorData.getConfiguration().getLicenses(LicenseSetFactory.LicenseFilter.ALL);
                     assertThat(set).hasSize(2);
                     assertThat(LicenseSetFactory.search("ONE", "ONE", 
set)).isPresent();
                     assertThat(LicenseSetFactory.search("TWO", "TWO", 
set)).isPresent();
@@ -597,11 +597,11 @@ DataUtils.NO_SETUP,
     private List<TestData> noDefaultsTest(final Option option) {
         TestData test1 = new TestData("", 
Collections.singletonList(ImmutablePair.of(option, null)),
                 DataUtils.NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.getLicenses(LicenseSetFactory.LicenseFilter.ALL)).isEmpty());
+                validatorData -> 
assertThat(validatorData.getConfiguration().getLicenses(LicenseSetFactory.LicenseFilter.ALL)).isEmpty());
 
         TestData test2 = new TestData(DataUtils.asDirName(option), 
Collections.singletonList(ImmutablePair.nullPair()),
                 DataUtils.NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.getLicenses(LicenseSetFactory.LicenseFilter.ALL)).isNotEmpty());
+                validatorData -> 
assertThat(validatorData.getConfiguration().getLicenses(LicenseSetFactory.LicenseFilter.ALL)).isNotEmpty());
 
         return Arrays.asList(test1, test2);
     }
@@ -614,23 +614,23 @@ DataUtils.NO_SETUP,
         Option option = Arg.DRY_RUN.find("dry-run");
         TestData test1 = new TestData("stdRun", 
Collections.singletonList(ImmutablePair.of(option, null)),
                 DataUtils.NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.isDryRun()).isTrue());
+                validatorData -> 
assertThat(validatorData.getConfiguration().isDryRun()).isTrue());
 
         TestData test2 = new TestData(DataUtils.asDirName(option), 
Collections.singletonList(ImmutablePair.nullPair()),
                 DataUtils.NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.isDryRun()).isFalse());
+                validatorData -> 
assertThat(validatorData.getConfiguration().isDryRun()).isFalse());
         return Arrays.asList(test1, test2);
     }
 
     private List<TestData> editCopyrightTest(final Option option) {
         TestData test1 = new TestData("noEditLicense", 
Collections.singletonList(ImmutablePair.of(option, new 
String[]{"MyCopyright"})),
                 DataUtils.NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.getCopyrightMessage()).as("Copyright without 
--edit-license should not work").isNull());
+                validatorData -> 
assertThat(validatorData.getConfiguration().getCopyrightMessage()).as("Copyright
 without --edit-license should not work").isNull());
 
         TestData test2 = new TestData("MyCopyright", 
Arrays.asList(ImmutablePair.of(option, new String[]{"MyCopyright"}),
                 ImmutablePair.of(Arg.EDIT_ADD.find("edit-license"), null)),
                 DataUtils.NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.getCopyrightMessage()).isEqualTo("MyCopyright"));
+                validatorData -> 
assertThat(validatorData.getConfiguration().getCopyrightMessage()).isEqualTo("MyCopyright"));
 return Arrays.asList(test1, test1);
     }
 
@@ -641,11 +641,11 @@ return Arrays.asList(test1, test1);
     private List<TestData> editLicenseTest(final Option option) {
         TestData test1 = new TestData("", 
Collections.singletonList(ImmutablePair.of(option, null)),
                 DataUtils.NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.isAddingLicenses()).isTrue());
+                validatorData -> 
assertThat(validatorData.getConfiguration().isAddingLicenses()).isTrue());
 
         TestData test2 = new TestData(DataUtils.asDirName(option), 
Collections.singletonList(ImmutablePair.nullPair()),
                 DataUtils.NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.isAddingLicenses()).isFalse());
+                validatorData -> 
assertThat(validatorData.getConfiguration().isAddingLicenses()).isFalse());
         return Arrays.asList(test1, test2);
     }
 
@@ -656,13 +656,13 @@ return Arrays.asList(test1, test1);
     private List<TestData>  overwriteTest(final Option option) {
         TestData test1 = new TestData("noEditLicense", 
Collections.singletonList(ImmutablePair.of(option, null)),
                 DataUtils.NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.isAddingLicensesForced())
+                validatorData -> 
assertThat(validatorData.getConfiguration().isAddingLicensesForced())
                         .describedAs("Without edit-license should be 
false").isFalse());
 
         TestData test = new TestData("", 
Arrays.asList(ImmutablePair.of(option, null),
                 ImmutablePair.of(Arg.EDIT_ADD.find("edit-license"), null)),
                 DataUtils.NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.isAddingLicensesForced()).isTrue());
+                validatorData -> 
assertThat(validatorData.getConfiguration().isAddingLicensesForced()).isTrue());
         return Arrays.asList(test1, test);
     }
 
@@ -698,7 +698,7 @@ return Arrays.asList(test1, test1);
             TestData test = new TestData(processing.name(),
                     Collections.singletonList(ImmutablePair.of(option, new 
String[]{processing.name()})),
                     DataUtils.NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.getArchiveProcessing()).isEqualTo(processing));
+                validatorData -> 
assertThat(validatorData.getConfiguration().getArchiveProcessing()).isEqualTo(processing));
             result.add(test);
         }
         return result;
@@ -714,7 +714,7 @@ return Arrays.asList(test1, test1);
             TestData test = new TestData(filter.name(),
                     Collections.singletonList(ImmutablePair.of(option, new 
String[]{filter.name()})),
                     DataUtils.NO_SETUP,
-                    validatorData -> 
assertThat(validatorData.config.listFamilies()).isEqualTo(filter));
+                    validatorData -> 
assertThat(validatorData.getConfiguration().listFamilies()).isEqualTo(filter));
             result.add(test);
         }
         return result;
@@ -729,7 +729,7 @@ return Arrays.asList(test1, test1);
         TestData test1 = new TestData("", 
Collections.singletonList(ImmutablePair.of(option, args)),
         DataUtils.NO_SETUP,
         validatorData -> {
-            try (OutputStream os = validatorData.config.getOutput().get()) {
+            try (OutputStream os = 
validatorData.getConfiguration().getOutput().get()) {
                 os.write("Hello world".getBytes());
             } catch (IOException e) {
                 throw new RuntimeException(e);
@@ -754,7 +754,7 @@ return Arrays.asList(test1, test1);
         for (LicenseSetFactory.LicenseFilter filter : 
LicenseSetFactory.LicenseFilter.values()) {
             TestData test = new TestData(filter.name(), 
Collections.singletonList(ImmutablePair.of(option, new 
String[]{filter.name()})),
             DataUtils.NO_SETUP,
-            validatorData -> 
assertThat(validatorData.config.listLicenses()).isEqualTo(filter));
+            validatorData -> 
assertThat(validatorData.getConfiguration().listLicenses()).isEqualTo(filter));
             result.add(test);
         }
         return result;
@@ -769,7 +769,7 @@ return Arrays.asList(test1, test1);
             for (ReportConfiguration.Processing proc : 
ReportConfiguration.Processing.values()) {
                 TestData test = new TestData(proc.name(), 
Collections.singletonList(ImmutablePair.of(option, new String[]{proc.name()})),
                         DataUtils.NO_SETUP,
-                        validatorData -> 
assertThat(validatorData.config.getStandardProcessing()).isEqualTo(proc));
+                        validatorData -> 
assertThat(validatorData.getConfiguration().getStandardProcessing()).isEqualTo(proc));
                 result.add(test);
             }
             return result;
@@ -787,7 +787,7 @@ return Arrays.asList(test1, test1);
                     DataUtils.NO_SETUP,
                     validatorData -> {
                         try (InputStream expected = 
sheet.getStyleSheet().get();
-                             InputStream actual = 
validatorData.config.getStyleSheet().get()) {
+                             InputStream actual = 
validatorData.getConfiguration().getStyleSheet().get()) {
                             assertThat(IOUtils.contentEquals(expected, 
actual)).as(() -> String.format("'%s' does not match", sheet)).isTrue();
                         } catch (IOException e) {
                             throw new RuntimeException(e);
@@ -819,7 +819,7 @@ return Arrays.asList(test1, test1);
 
                 validatorData -> {
                     try (InputStream expected = 
StyleSheets.getStyleSheet("fileStyleSheet.xslt", 
validatorData.getBaseName()).get();
-                         InputStream actual = 
validatorData.config.getStyleSheet().get()) {
+                         InputStream actual = 
validatorData.getConfiguration().getStyleSheet().get()) {
                         assertThat(IOUtils.contentEquals(expected, 
actual)).as(() -> "'fileStyleSheet.xslt' does not match").isTrue();
                     } catch (IOException e) {
                         throw new RuntimeException(e);
diff --git 
a/apache-rat-core/src/test/java/org/apache/rat/testhelpers/data/ReportTestDataProvider.java
 
b/apache-rat-core/src/test/java/org/apache/rat/testhelpers/data/ReportTestDataProvider.java
index c7193d6c..82adb3d0 100644
--- 
a/apache-rat-core/src/test/java/org/apache/rat/testhelpers/data/ReportTestDataProvider.java
+++ 
b/apache-rat-core/src/test/java/org/apache/rat/testhelpers/data/ReportTestDataProvider.java
@@ -195,7 +195,7 @@ public class ReportTestDataProvider {
         TestData test1 = new TestData(DataUtils.asDirName(option), NO_OPTIONS,
                 setup,
                 validatorData -> {
-                    ClaimStatistic claimStatistic = 
validatorData.output.getStatistic();
+                    ClaimStatistic claimStatistic = 
validatorData.getStatistic();
                     
assertThat(claimStatistic.getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(5);
                     
assertThat(claimStatistic.getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(1);
                 });
@@ -204,14 +204,14 @@ public class ReportTestDataProvider {
         TestData test2 = new TestData("", 
Collections.singletonList(ImmutablePair.of(option, args.get())),
                 setup,
                 validatorData -> {
-                    ClaimStatistic claimStatistic = 
validatorData.output.getStatistic();
+                    ClaimStatistic claimStatistic = 
validatorData.getStatistic();
                     
assertThat(claimStatistic.getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(standard.length);
                     
assertThat(claimStatistic.getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(ignored.length);
                     for (String fileName : ignored) {
-                        assertIgnoredFile(validatorData.output.getDocument(), 
fileName);
+                        assertIgnoredFile(validatorData.getDocument(), 
fileName);
                     }
                     for (String fileName : standard) {
-                        assertStandardFile(validatorData.output.getDocument(), 
fileName);
+                        assertStandardFile(validatorData.getDocument(), 
fileName);
                     }
                 });
         return Arrays.asList(test1, test2);
@@ -253,30 +253,30 @@ public class ReportTestDataProvider {
         TestData test1 = new TestData(DataUtils.asDirName(option), 
Collections.singletonList(ImmutablePair.nullPair()),
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(defaultIncluded.length
 + 1);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(defaultExcluded.length);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(defaultIncluded.length
 + 1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(defaultExcluded.length);
                     for (String fileName : defaultIncluded) {
-                        assertStandardFile(validatorData.output.getDocument(), 
fileName);
+                        assertStandardFile(validatorData.getDocument(), 
fileName);
                     }
                     for (String fileName : defaultExcluded) {
-                        assertIgnoredFile(validatorData.output.getDocument(), 
fileName);
+                        assertIgnoredFile(validatorData.getDocument(), 
fileName);
                     }
-                    assertStandardFile(validatorData.output.getDocument(), 
mavenFile);
+                    assertStandardFile(validatorData.getDocument(), mavenFile);
                 });
 
 
         TestData test2 = new TestData("", 
Collections.singletonList(ImmutablePair.of(option, args)),
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(defaultIncluded.length);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(defaultExcluded.length
 + 1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(defaultIncluded.length);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(defaultExcluded.length
 + 1);
                     for (String fileName : defaultIncluded) {
-                        assertStandardFile(validatorData.output.getDocument(), 
fileName);
+                        assertStandardFile(validatorData.getDocument(), 
fileName);
                     }
                     for (String fileName : defaultExcluded) {
-                        assertIgnoredFile(validatorData.output.getDocument(), 
fileName);
+                        assertIgnoredFile(validatorData.getDocument(), 
fileName);
                     }
-                    assertIgnoredFile(validatorData.output.getDocument(), 
mavenFile);
+                    assertIgnoredFile(validatorData.getDocument(), mavenFile);
                 });
         return Arrays.asList(test1, test2);
     }
@@ -325,17 +325,17 @@ public class ReportTestDataProvider {
         TestData test1 = new TestData(DataUtils.asDirName(option), 
Collections.singletonList(ImmutablePair.nullPair()),
             setup,
             validatorData -> {
-                
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(11);
+                
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(11);
                 // .gitignore is ignored by default as it is hidden
-                
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(0);
+                
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(0);
             });
 
     TestData test2 = new TestData("GIT", 
Collections.singletonList(ImmutablePair.of(option, new String[] {"GIT"})),
             setup,
             validatorData -> {
-                
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(3);
+                
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(3);
                 // .gitignore is ignored by default as it is hidden
-                
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(8);
+                
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(8);
             });
 
     return Arrays.asList(test1, test2);
@@ -357,26 +357,26 @@ public class ReportTestDataProvider {
         TestData test1 = new TestData(DataUtils.asDirName(option), 
Collections.singletonList(ImmutablePair.of(null, null)),
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(3);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(0);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(3);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(0);
                     for (String fname : excluded) {
-                        assertStandardFile(validatorData.output.getDocument(), 
fname);
+                        assertStandardFile(validatorData.getDocument(), fname);
                     }
                     for (String fname : notExcluded) {
-                        assertStandardFile(validatorData.output.getDocument(), 
fname);
+                        assertStandardFile(validatorData.getDocument(), fname);
                     }
                 });
 
         TestData test2 = new TestData("", 
Collections.singletonList(ImmutablePair.of(option, new String[]{"5"})),
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(2);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(2);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(1);
                     for (String fname : excluded) {
-                        assertIgnoredFile(validatorData.output.getDocument(), 
fname);
+                        assertIgnoredFile(validatorData.getDocument(), fname);
                     }
                     for (String fname : notExcluded) {
-                        assertStandardFile(validatorData.output.getDocument(), 
fname);
+                        assertStandardFile(validatorData.getDocument(), fname);
                     }
                 });
         return Arrays.asList(test1, test2);
@@ -399,25 +399,25 @@ public class ReportTestDataProvider {
         TestData test1 = new TestData(DataUtils.asDirName(option), NO_OPTIONS,
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(4);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(4);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(1);
                 });
 
         // verify exclude removes the files
         TestData test2 = new TestData("includeTestProof", 
Collections.singletonList(ImmutablePair.of(excludeOption, 
OptionTestDataProvider.EXCLUDE_ARGS)),
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(1);
                     // .gitignore is ignored by default as it is hidden but 
not counted
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(4);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(4);
                 });
 
         TestData test3 = new TestData("", 
Arrays.asList(ImmutablePair.of(option, args), ImmutablePair.of(excludeOption, 
OptionTestDataProvider.EXCLUDE_ARGS)),
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(3);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(3);
                     // .gitignore is ignored by default as it is hidden but 
not counted
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(2);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(2);
                 });
         return Arrays.asList(test1, test2, test3);
     }
@@ -462,35 +462,35 @@ public class ReportTestDataProvider {
         TestData test1 = new TestData("/includeStdValidation", 
Collections.singletonList(excludes),
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(4);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(6);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(4);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(6);
                 });
 
         TestData test2 = new 
TestData(StandardCollection.MISC.name().toLowerCase(Locale.ROOT), 
Arrays.asList(ImmutablePair.of(option, new 
String[]{StandardCollection.MISC.name()}), excludes),
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(8);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(2);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(8);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(2);
                 });
 
         TestData test3 = new 
TestData(StandardCollection.HIDDEN_FILE.name().toLowerCase(Locale.ROOT), 
Arrays.asList(ImmutablePair.of(option, new 
String[]{StandardCollection.HIDDEN_FILE.name()}), excludes),
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS))
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS))
                             .isEqualTo(6);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED))
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED))
                             .isEqualTo(4);
-                    assertStandardFile(validatorData.output.getDocument(), 
"._afile");
-                    assertIgnoredFile(validatorData.output.getDocument(), 
".hiddenDir");
+                    assertStandardFile(validatorData.getDocument(), "._afile");
+                    assertIgnoredFile(validatorData.getDocument(), 
".hiddenDir");
                 });
         TestData test4 = new 
TestData(StandardCollection.HIDDEN_DIR.name().toLowerCase(Locale.ROOT),
                 Arrays.asList(ImmutablePair.of(option, new 
String[]{StandardCollection.HIDDEN_DIR.name()}), excludes),
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(5);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(5);
-                    assertIgnoredFile(validatorData.output.getDocument(), 
"._afile");
-                    assertStandardFile(validatorData.output.getDocument(), 
".hiddenDir/aFile");
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(5);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(5);
+                    assertIgnoredFile(validatorData.getDocument(), "._afile");
+                    assertStandardFile(validatorData.getDocument(), 
".hiddenDir/aFile");
                 });
         return Arrays.asList(test1, test2, test3, test4);
     }
@@ -507,15 +507,15 @@ public class ReportTestDataProvider {
         TestData test1 = new TestData(DataUtils.asDirName(option), NO_OPTIONS,
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(3);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(0);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(3);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(0);
                 });
 
         TestData test2 = new TestData("", 
Collections.singletonList(ImmutablePair.of(option, new String[]{"intput.txt"})),
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(1);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(0);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.IGNORED)).isEqualTo(0);
                 });
         return Arrays.asList(test1, test2);
     }
@@ -533,17 +533,17 @@ public class ReportTestDataProvider {
         TestData test1 = new TestData(DataUtils.asDirName(option), NO_OPTIONS,
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(2);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(1);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(2);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(1);
                 });
 
         TestData test2 = new TestData("withoutLicenseDef", 
Collections.singletonList(ImmutablePair.of(option, args)),
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(2);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(1);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(2);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(1);
                 });
 
         Option configOpt = Arg.CONFIGURATION.option();
@@ -555,9 +555,9 @@ public class ReportTestDataProvider {
                     
DataUtils.generateSpdxConfig(basePath.resolve(".rat").resolve("catz.xml"), 
"catz", "catz");
                 }),
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(2);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(2);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(0);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(2);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(2);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(0);
                 });
         return Arrays.asList(test1, test2, test3);
     }
@@ -603,8 +603,8 @@ public class ReportTestDataProvider {
                 setup,
                 validatorData -> {
                 
-                ClaimStatistic claimStatistic = 
validatorData.output.getStatistic();
-                ClaimValidator validator = 
validatorData.config.getClaimValidator();
+                ClaimStatistic claimStatistic = validatorData.getStatistic();
+                ClaimValidator validator = 
validatorData.getConfiguration().getClaimValidator();
                 
assertThat(validator.listIssues(claimStatistic)).containsExactly("UNAPPROVED");
             });
         return Collections.singletonList(test1);
@@ -630,17 +630,17 @@ public class ReportTestDataProvider {
         TestData test1 = new TestData(DataUtils.asDirName(option), NO_OPTIONS,
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(1);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(0);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(0);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(1);
                 });
 
         TestData test2 = new TestData("withoutLicenseDef", 
Collections.singletonList(ImmutablePair.of(option, args)),
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(1);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(0);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(0);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(1);
                 });
         Option configOpt = Arg.CONFIGURATION.option();
         TestData test3 = new TestData("withLicenseDef", 
Arrays.asList(ImmutablePair.of(option, args),
@@ -652,9 +652,9 @@ public class ReportTestDataProvider {
                             DataUtils.generateSpdxConfig(catzXml, "catz", 
"catz");
                         }),
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(1);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(1);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(0);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(0);
                 });
         return Arrays.asList(test1, test2, test3);
     }
@@ -683,17 +683,17 @@ public class ReportTestDataProvider {
         TestData test1 = new TestData(DataUtils.asDirName(option), NO_OPTIONS,
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(1);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(1);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(0);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(0);
                 });
 
         TestData test2 = new TestData("", 
Collections.singletonList(ImmutablePair.of(option, args)),
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(1);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(0);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(0);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(1);
                 });
 
         return Arrays.asList(test1, test2);
@@ -721,8 +721,8 @@ public class ReportTestDataProvider {
                             "*/\n\n", "class Test {}\n"));
                 },
                 validatorData -> {
-                    ClaimStatistic claimStatistic = 
validatorData.output.getStatistic();
-                    ClaimValidator validator = 
validatorData.config.getClaimValidator();
+                    ClaimStatistic claimStatistic = 
validatorData.getStatistic();
+                    ClaimValidator validator = 
validatorData.getConfiguration().getClaimValidator();
                     
assertThat(validator.listIssues(claimStatistic)).containsExactly("UNAPPROVED");
                 });
 
@@ -734,8 +734,8 @@ public class ReportTestDataProvider {
                             "*/\n\n", "class Test {}\n"));
                 },
                 validatorData -> {
-                    ClaimStatistic claimStatistic = 
validatorData.output.getStatistic();
-                    ClaimValidator validator = 
validatorData.config.getClaimValidator();
+                    ClaimStatistic claimStatistic = 
validatorData.getStatistic();
+                    ClaimValidator validator = 
validatorData.getConfiguration().getClaimValidator();
                     assertThat(validator.listIssues(claimStatistic)).isEmpty();
                 });
         return Arrays.asList(test1, test2);
@@ -751,8 +751,8 @@ public class ReportTestDataProvider {
                             "*/\n\n", "class Test {}\n"));
                 },
                 validatorData -> {
-                    ClaimStatistic claimStatistic = 
validatorData.output.getStatistic();
-                    ClaimValidator validator = 
validatorData.config.getClaimValidator();
+                    ClaimStatistic claimStatistic = 
validatorData.getStatistic();
+                    ClaimValidator validator = 
validatorData.getConfiguration().getClaimValidator();
                     
assertThat(validator.listIssues(claimStatistic)).containsExactly("UNAPPROVED");
                 });
 
@@ -763,8 +763,8 @@ public class ReportTestDataProvider {
                             "*/\n\n", "class Test {}\n"));
                 },
                 validatorData -> {
-                    ClaimStatistic claimStatistic = 
validatorData.output.getStatistic();
-                    ClaimValidator validator = 
validatorData.config.getClaimValidator();
+                    ClaimStatistic claimStatistic = 
validatorData.getStatistic();
+                    ClaimValidator validator = 
validatorData.getConfiguration().getClaimValidator();
                     assertThat(validator.listIssues(claimStatistic)).isEmpty();
                 });
         return Arrays.asList(test1, test2);
@@ -790,26 +790,26 @@ public class ReportTestDataProvider {
         TestData test1 = new TestData(DataUtils.asDirName(option), NO_OPTIONS,
                 setup,
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(2);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(1);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(2);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(1);
                 });
 
         TestData test2 = new TestData("withDefaults", 
Collections.singletonList(underTest),
             setup,
             validatorData -> {
-                
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(2);
-                
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(2);
-                
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(0);
+                
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(2);
+                
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(2);
+                
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(0);
             });
 
         TestData test3 = new TestData("noDefaults", Arrays.asList(underTest,
                 
ImmutablePair.of(Arg.CONFIGURATION_NO_DEFAULTS.find("configuration-no-defaults"),
 null)),
             setup,
             validatorData -> {
-                
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(2);
-                
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(1);
-                
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(1);
+                
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(2);
+                
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(1);
+                
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(1);
             });
         return Arrays.asList(test1, test2, test3);
     }
@@ -825,7 +825,7 @@ public class ReportTestDataProvider {
                     writeFile(baseDir, "Test.java", Arrays.asList("/*\n", 
"SPDX-License-Identifier: Apache-2.0\n",
                             "*/\n\n", "class Test {}\n"));
                 },
-                validatorData -> 
assertThat(validatorData.config.getLicenses(LicenseSetFactory.LicenseFilter.ALL)).isEmpty());
+                validatorData -> 
assertThat(validatorData.getConfiguration().getLicenses(LicenseSetFactory.LicenseFilter.ALL)).isEmpty());
         test1.setException(NO_LICENSES_EXCEPTION);
         return Collections.singletonList(test1);
     }
@@ -838,11 +838,11 @@ public class ReportTestDataProvider {
         Option option = Arg.DRY_RUN.find("dry-run");
         TestData test1 = new TestData("stdRun", 
Collections.singletonList(ImmutablePair.of(option, null)),
                 NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.isDryRun()).isTrue());
+                validatorData -> 
assertThat(validatorData.getConfiguration().isDryRun()).isTrue());
 
         TestData test2 = new TestData(DataUtils.asDirName(option), NO_OPTIONS,
                 NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.isDryRun()).isFalse());
+                validatorData -> 
assertThat(validatorData.getConfiguration().isDryRun()).isFalse());
         return Arrays.asList(test1, test2);
     }
 
@@ -858,7 +858,7 @@ public class ReportTestDataProvider {
                 setup,
                 validatorData -> {
                     try {
-                        String actualText = 
TextUtils.readFile(validatorData.baseDir.resolve("Missing.java").toFile());
+                        String actualText = 
TextUtils.readFile(validatorData.getBaseDir().resolve("Missing.java").toFile());
                         TextUtils.assertNotContains("MyCopyright", actualText);
                     } catch (IOException ex) {
                         throw new RuntimeException(ex);
@@ -869,10 +869,10 @@ public class ReportTestDataProvider {
                 setup,
                 validatorData -> {
                     try {
-                        String actualText = 
TextUtils.readFile(validatorData.baseDir.resolve("Missing.java").toFile());
+                        String actualText = 
TextUtils.readFile(validatorData.getBaseDir().resolve("Missing.java").toFile());
                         TextUtils.assertNotContains("MyCopyright", actualText);
-                        
assertThat(validatorData.baseDir.resolve("Missing.java.new")).exists();
-                        actualText = 
TextUtils.readFile(validatorData.baseDir.resolve("Missing.java.new").toFile());
+                        
assertThat(validatorData.getBaseDir().resolve("Missing.java.new")).exists();
+                        actualText = 
TextUtils.readFile(validatorData.getBaseDir().resolve("Missing.java.new").toFile());
                         TextUtils.assertContains("MyCopyright", actualText);
                     } catch (IOException ex) {
                         throw new RuntimeException(ex);
@@ -884,21 +884,21 @@ public class ReportTestDataProvider {
                 setup,
                 validatorData -> {
                     try {
-                        String actualText = 
TextUtils.readFile(validatorData.baseDir.resolve("Missing.java").toFile());
+                        String actualText = 
TextUtils.readFile(validatorData.getBaseDir().resolve("Missing.java").toFile());
                         TextUtils.assertNotContains("MyCopyright", actualText);
                     } catch (IOException ex) {
                         throw new RuntimeException(ex);
                     }
-                    
assertThat(validatorData.baseDir.resolve("Missing.java.new")).doesNotExist();
+                    
assertThat(validatorData.getBaseDir().resolve("Missing.java.new")).doesNotExist();
                 });
         Option overwrite = Arg.EDIT_OVERWRITE.option();
         TestData test4 = new TestData(DataUtils.asDirName(overwrite), 
Arrays.asList(copyright, editLicense, ImmutablePair.of(overwrite, null)),
                 setup,
                 validatorData -> {
                     try {
-                        String actualText = 
TextUtils.readFile(validatorData.baseDir.resolve("Missing.java").toFile());
+                        String actualText = 
TextUtils.readFile(validatorData.getBaseDir().resolve("Missing.java").toFile());
                         TextUtils.assertContains("MyCopyright", actualText);
-                        
assertThat(validatorData.baseDir.resolve("Missing.java.new")).doesNotExist();
+                        
assertThat(validatorData.getBaseDir().resolve("Missing.java.new")).doesNotExist();
                     } catch (IOException ex) {
                         throw new RuntimeException(ex);
                     }
@@ -918,11 +918,11 @@ public class ReportTestDataProvider {
             },
                 validatorData -> {
             try {
-                assertThat(validatorData.output.getStatistic()).isNotNull();
-                File javaFile = 
validatorData.baseDir.resolve("NoLicense.java").toFile();
+                assertThat(validatorData.getStatistic()).isNotNull();
+                File javaFile = 
validatorData.getBaseDir().resolve("NoLicense.java").toFile();
                 String contents = String.join("\n", IOUtils.readLines(new 
FileReader(javaFile)));
                 assertThat(contents).isEqualTo("class NoLicense {}");
-                File resultFile = 
validatorData.baseDir.resolve("NoLicense.java.new").toFile();
+                File resultFile = 
validatorData.getBaseDir().resolve("NoLicense.java.new").toFile();
                 assertThat(resultFile).exists();
                 contents = String.join("\n", IOUtils.readLines(new 
FileReader(resultFile)));
                 assertThat(contents).isEqualTo("/*\n" +
@@ -958,13 +958,13 @@ public class ReportTestDataProvider {
     private List<TestData>  overwriteTest(final Option option) {
         TestData test1 = new TestData("noEditLicense", 
Collections.singletonList(ImmutablePair.of(option, null)),
                 NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.isAddingLicensesForced())
+                validatorData -> 
assertThat(validatorData.getConfiguration().isAddingLicensesForced())
                         .describedAs("Without edit-license should be 
false").isFalse());
 
         TestData test = new TestData("", 
Arrays.asList(ImmutablePair.of(option, null),
                 ImmutablePair.of(Arg.EDIT_ADD.find("edit-license"), null)),
                 NO_SETUP,
-                validatorData -> 
assertThat(validatorData.config.isAddingLicensesForced()).isTrue());
+                validatorData -> 
assertThat(validatorData.getConfiguration().isAddingLicensesForced()).isTrue());
         return Arrays.asList(test1, test);
     }
 
@@ -1022,7 +1022,7 @@ public class ReportTestDataProvider {
                         }
                     },
                     validatorData -> {
-                        Document document = validatorData.output.getDocument();
+                        Document document = validatorData.getDocument();
                         try {
                             XmlUtils.assertIsPresent(processing.name(), 
document, xpath, "/rat-report/resource[@name='/dummy.jar']");
                             switch (processing) {
@@ -1061,7 +1061,7 @@ public class ReportTestDataProvider {
                     Collections.singletonList(ImmutablePair.of(option, new 
String[]{filter.name()})),
                     NO_SETUP,
                     validatorData -> {
-                        Document document = validatorData.output.getDocument();
+                        Document document = validatorData.getDocument();
                         try {
                             switch (filter) {
                                 case ALL:
@@ -1100,11 +1100,11 @@ public class ReportTestDataProvider {
                     writeFile(baseDir, "apl.txt", "SPDX-License-Identifier: 
Apache-2.0");
                 },
                 validatorData -> {
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(1);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(1);
-                    
assertThat(validatorData.output.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(0);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.STANDARDS)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.APPROVED)).isEqualTo(1);
+                    
assertThat(validatorData.getStatistic().getCounter(ClaimStatistic.Counter.UNAPPROVED)).isEqualTo(0);
 
-                    File outFile = 
validatorData.baseDir.resolve("outexample").toFile();
+                    File outFile = 
validatorData.getBaseDir().resolve("outexample").toFile();
                     try {
                         String actualText = TextUtils.readFile(outFile);
                         TextUtils.assertContainsExactly(1, "Apache License 
2.0: 1 ", actualText);
@@ -1126,7 +1126,7 @@ public class ReportTestDataProvider {
             TestData test = new TestData(filter.name(), 
Collections.singletonList(ImmutablePair.of(option, new 
String[]{filter.name()})),
                     NO_SETUP,
                     validatorData -> {
-                        Document document = validatorData.output.getDocument();
+                        Document document = validatorData.getDocument();
                         try {
                             switch (filter) {
                                 case ALL:
@@ -1168,7 +1168,7 @@ public class ReportTestDataProvider {
                         writeFile(baseDir, "Missing.java", Arrays.asList("/* 
no license */\n\n", "class Test {}\n"));
                     },
                     validatorData -> {
-                        Document document = validatorData.output.getDocument();
+                        Document document = validatorData.getDocument();
                         String testDoc = 
"/rat-report/resource[@name='/Test.java']";
                         String missingDoc = 
"/rat-report/resource[@name='/Missing.java']";
                         try {
@@ -1221,10 +1221,10 @@ public class ReportTestDataProvider {
                     createFile,
                     validatorData -> {
                         try (InputStream expected = 
sheet.getStyleSheet().get();
-                             InputStream actual = 
validatorData.config.getStyleSheet().get()) {
+                             InputStream actual = 
validatorData.getConfiguration().getStyleSheet().get()) {
                             assertThat(IOUtils.contentEquals(expected, 
actual)).as(() -> String.format("'%s' does not match", sheet)).isTrue();
 
-                            String actualText = 
TextUtils.readFile(validatorData.baseDir.resolve("outputFile").toFile());
+                            String actualText = 
TextUtils.readFile(validatorData.getBaseDir().resolve("outputFile").toFile());
                             switch (sheet) {
                                 case MISSING_HEADERS:
                                     TextUtils.assertContainsExactly(1, "Files 
with missing headers:" + System.lineSeparator() +
@@ -1275,10 +1275,10 @@ public class ReportTestDataProvider {
 
                 validatorData -> {
                     try (InputStream expected = 
StyleSheets.getStyleSheet("fileStyleSheet.xslt", 
validatorData.getBaseName()).get();
-                         InputStream actual = 
validatorData.config.getStyleSheet().get()) {
+                         InputStream actual = 
validatorData.getConfiguration().getStyleSheet().get()) {
                         assertThat(IOUtils.contentEquals(expected, 
actual)).as(() -> "'fileStyleSheet.xslt' does not match").isTrue();
 
-                        String actualText = 
TextUtils.readFile(validatorData.baseDir.resolve("outputFile").toFile());
+                        String actualText = 
TextUtils.readFile(validatorData.getBaseDir().resolve("outputFile").toFile());
                         TextUtils.assertContainsExactly(1, "Hello World", 
actualText);
                     } catch (IOException e) {
                         throw new RuntimeException(e);
diff --git 
a/apache-rat-core/src/test/java/org/apache/rat/testhelpers/data/ValidatorData.java
 
b/apache-rat-core/src/test/java/org/apache/rat/testhelpers/data/ValidatorData.java
index 104dbe5a..b7322ac3 100644
--- 
a/apache-rat-core/src/test/java/org/apache/rat/testhelpers/data/ValidatorData.java
+++ 
b/apache-rat-core/src/test/java/org/apache/rat/testhelpers/data/ValidatorData.java
@@ -23,27 +23,25 @@ import java.nio.file.Paths;
 import org.apache.rat.ReportConfiguration;
 import org.apache.rat.Reporter;
 import org.apache.rat.document.DocumentName;
+import org.apache.rat.report.claim.ClaimStatistic;
+import org.w3c.dom.Document;
 
 /**
  * The validator for test data.
  */
-public class ValidatorData {
+public final class ValidatorData {
     /** The report output */
-    public final Reporter.Output output;
-    /** the report configuration */
-    public final ReportConfiguration config;
+    private final Reporter.Output output;
     /** the base directory where the test setup was created */
-    public final Path baseDir;
+    private final Path baseDir;
 
     /**
      * Constructor.
      * @param output The report output.
-     * @param config the report configuration.
      * @param baseDir the directory where the test setup was created.
      */
-    public ValidatorData(final Reporter.Output output, final 
ReportConfiguration config, final String baseDir) {
+    public ValidatorData(final Reporter.Output output, final String baseDir) {
         this.output = output;
-        this.config = config;
         this.baseDir = Paths.get(baseDir);
     }
 
@@ -63,4 +61,33 @@ public class ValidatorData {
     public DocumentName mkDocName(String fileName) {
         return 
DocumentName.builder().setBaseName(baseDir.toFile()).setName(fileName).build();
     }
+
+    /**
+     * Gets the document that was generated during execution.
+     * @return the document that was generated during execution.
+     */
+    public Document getDocument() {
+        return output.getDocument();
+    }
+
+    /**
+     * Gets the claim statistics from the run
+     * @return the ClaimStatistic from the run.
+     */
+    public ClaimStatistic getStatistic() {
+        return output.getStatistic();
+    }
+
+    /**
+     * Gets the configuration from the run.
+     * @return the configuration from the run.
+     */
+    public ReportConfiguration getConfiguration() {
+        return output.getConfiguration();
+    }
+
+    public Path getBaseDir() {
+        return baseDir;
+    }
+
 }

Reply via email to