diff --git a/README.md b/README.md index 7a3acfcd..a07bff4e 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ Example Java code of using the CSV Validator through the Java API: csvReader, csvSchemaReader ) - Result result = validateWithStringNames +List messages = validateWithStringNames .usingCsvEncoding(csvEncoding, validateCsvEncoding) // should only be `true` if using UTF-8 encoding, otherwise it will throw an exception .usingCsvSchemaEncoding(csvSchemaEncoding) .usingFailFast(failFast) @@ -85,9 +85,8 @@ Example Java code of using the CSV Validator through the Java API: .usingProgress(progress) .usingSkipFileChecks(skipFileChecks) .usingMaxCharsPerCell(maxCharsPerCell) - .runValidation(); - -List messages = ((CsvValidatorJavaBridge.ValidationResult)(result)).errors(); + .runValidation() + .getErrors(); if(messages.isEmpty()) { System.out.println("All worked OK"); diff --git a/csv-validator-java-api/src/main/java/uk/gov/nationalarchives/csv/validator/api/java/Request.java b/csv-validator-java-api/src/main/java/uk/gov/nationalarchives/csv/validator/api/java/Request.java deleted file mode 100644 index 675d30b1..00000000 --- a/csv-validator-java-api/src/main/java/uk/gov/nationalarchives/csv/validator/api/java/Request.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (c) 2013, The National Archives - * https://www.nationalarchives.gov.uk - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ -package uk.gov.nationalarchives.csv.validator.api.java; - -import java.util.ArrayList; - -public interface Request { - boolean failFast = false; - ArrayList pathSubstitutionsList = new ArrayList<>(); - boolean enforceCaseSensitivePathChecks = false; - boolean trace = false; - ProgressCallback progress = null; - boolean skipFileChecks = false; - int maxCharsPerCellLimit = 4096; -} diff --git a/csv-validator-java-api/src/main/java/uk/gov/nationalarchives/csv/validator/api/java/Result.java b/csv-validator-java-api/src/main/java/uk/gov/nationalarchives/csv/validator/api/java/Result.java index d1a8e90e..26096b23 100644 --- a/csv-validator-java-api/src/main/java/uk/gov/nationalarchives/csv/validator/api/java/Result.java +++ b/csv-validator-java-api/src/main/java/uk/gov/nationalarchives/csv/validator/api/java/Result.java @@ -8,9 +8,8 @@ */ package uk.gov.nationalarchives.csv.validator.api.java; -import java.util.ArrayList; +import java.util.List; public interface Result { - ArrayList errors = new ArrayList<>(); - Request validatorRequest = null; + List getErrors(); } diff --git a/csv-validator-java-api/src/main/scala/uk/gov/nationalarchives/csv/validator/api/java/CsvValidatorJavaBridge.scala b/csv-validator-java-api/src/main/scala/uk/gov/nationalarchives/csv/validator/api/java/CsvValidatorJavaBridge.scala index 1228d14e..251d8e6f 100644 --- a/csv-validator-java-api/src/main/scala/uk/gov/nationalarchives/csv/validator/api/java/CsvValidatorJavaBridge.scala +++ b/csv-validator-java-api/src/main/scala/uk/gov/nationalarchives/csv/validator/api/java/CsvValidatorJavaBridge.scala @@ -137,9 +137,13 @@ object CsvValidatorJavaBridge { case SFailMessage(SchemaDefinitionError, msg, lineNr, columnIdx) => new ErrorMessage(msg, lineNr.getOrElse(-1), columnIdx.getOrElse(-1)).asInstanceOf[FailMessage] } - case class ValidationResult(errors: JList[FailMessage], validatorRequest: ValidationRequest) extends Result - case class ValidationRequest(csvFile: String, csvEncoding: Charset, validateCsvEncoding: Boolean, csvSchemaFile: String, csvSchemaEncoding: Charset, validateCsvSchemaEncoding: Boolean, failFast: Boolean, pathSubstitutionsList: JList[Substitution], enforceCaseSensitivePathChecks: Boolean, trace: Boolean, progress: ProgressCallback, skipFileChecks: Boolean, maxCharsPerCellLimit: Int) extends Request - - case class ReaderValidationResult(errors: JList[FailMessage], validatorRequest: ReaderValidationRequest) extends Result - case class ReaderValidationRequest(csvReader: JReader, csvSchemaReader: JReader, failFast: Boolean, pathSubstitutionsList: JList[Substitution], enforceCaseSensitivePathChecks: Boolean, trace: Boolean, progress: ProgressCallback, skipFileChecks: Boolean, maxCharsPerCellLimit: Int) extends Request + case class ValidationResult(errors: JList[FailMessage], validatorRequest: ValidationRequest) extends Result { + override def getErrors: JList[FailMessage] = errors + } + case class ValidationRequest(csvFile: String, csvEncoding: Charset, validateCsvEncoding: Boolean, csvSchemaFile: String, csvSchemaEncoding: Charset, validateCsvSchemaEncoding: Boolean, failFast: Boolean, pathSubstitutionsList: JList[Substitution], enforceCaseSensitivePathChecks: Boolean, trace: Boolean, progress: ProgressCallback, skipFileChecks: Boolean, maxCharsPerCellLimit: Int) + + case class ReaderValidationResult(errors: JList[FailMessage], validatorRequest: ReaderValidationRequest) extends Result { + override def getErrors: JList[FailMessage] = errors + } + case class ReaderValidationRequest(csvReader: JReader, csvSchemaReader: JReader, failFast: Boolean, pathSubstitutionsList: JList[Substitution], enforceCaseSensitivePathChecks: Boolean, trace: Boolean, progress: ProgressCallback, skipFileChecks: Boolean, maxCharsPerCellLimit: Int) } diff --git a/csv-validator-java-api/src/test/java/uk/gov/nationalarchives/csv/validator/api/java/CsvValidatorTest.java b/csv-validator-java-api/src/test/java/uk/gov/nationalarchives/csv/validator/api/java/CsvValidatorTest.java index c6fc7fc7..cae3a99f 100644 --- a/csv-validator-java-api/src/test/java/uk/gov/nationalarchives/csv/validator/api/java/CsvValidatorTest.java +++ b/csv-validator-java-api/src/test/java/uk/gov/nationalarchives/csv/validator/api/java/CsvValidatorTest.java @@ -24,33 +24,33 @@ public class CsvValidatorTest { @Test public void defaultValuesAreUsedWhenUsingTextFileMethod() { Result result = new CsvValidator.ValidatorBuilder("csvFile", "csvSchema").runValidation(); - CsvValidatorJavaBridge.ValidationResult validatorRequest = (CsvValidatorJavaBridge.ValidationResult) result; - Assert.assertEquals("csvFile", validatorRequest.validatorRequest().csvFile()); - Assert.assertEquals(StandardCharsets.UTF_8, validatorRequest.validatorRequest().csvEncoding()); - Assert.assertEquals("csvSchema", validatorRequest.validatorRequest().csvSchemaFile()); - Assert.assertEquals(StandardCharsets.UTF_8, validatorRequest.validatorRequest().csvSchemaEncoding()); - Assert.assertFalse(validatorRequest.validatorRequest().failFast()); - Assert.assertEquals(new ArrayList(), validatorRequest.validatorRequest().pathSubstitutionsList()); - Assert.assertFalse(validatorRequest.validatorRequest().enforceCaseSensitivePathChecks()); - Assert.assertFalse(validatorRequest.validatorRequest().trace()); - Assert.assertNull(validatorRequest.validatorRequest().progress()); - Assert.assertFalse(validatorRequest.validatorRequest().skipFileChecks()); - Assert.assertEquals(4096, validatorRequest.validatorRequest().maxCharsPerCellLimit()); + CsvValidatorJavaBridge.ValidationRequest validationRequest = ((CsvValidatorJavaBridge.ValidationResult) result).validatorRequest(); + Assert.assertEquals("csvFile", validationRequest.csvFile()); + Assert.assertEquals(StandardCharsets.UTF_8, validationRequest.csvEncoding()); + Assert.assertEquals("csvSchema", validationRequest.csvSchemaFile()); + Assert.assertEquals(StandardCharsets.UTF_8, validationRequest.csvSchemaEncoding()); + Assert.assertFalse(validationRequest.failFast()); + Assert.assertEquals(new ArrayList(), validationRequest.pathSubstitutionsList()); + Assert.assertFalse(validationRequest.enforceCaseSensitivePathChecks()); + Assert.assertFalse(validationRequest.trace()); + Assert.assertNull(validationRequest.progress()); + Assert.assertFalse(validationRequest.skipFileChecks()); + Assert.assertEquals(4096, validationRequest.maxCharsPerCellLimit()); } @Test public void defaultValuesAreUsedWhenUsingReaderMethod() { Result result = new CsvValidator.ValidatorBuilder(csvFileReader, csvSchemaReader).runValidation(); - CsvValidatorJavaBridge.ReaderValidationResult validatorRequest = (CsvValidatorJavaBridge.ReaderValidationResult) result; - Assert.assertEquals(csvFileReader, validatorRequest.validatorRequest().csvReader()); - Assert.assertEquals(csvSchemaReader, validatorRequest.validatorRequest().csvSchemaReader()); - Assert.assertFalse(validatorRequest.validatorRequest().failFast()); - Assert.assertEquals(new ArrayList(), validatorRequest.validatorRequest().pathSubstitutionsList()); - Assert.assertFalse(validatorRequest.validatorRequest().enforceCaseSensitivePathChecks()); - Assert.assertFalse(validatorRequest.validatorRequest().trace()); - Assert.assertNull(validatorRequest.validatorRequest().progress()); - Assert.assertFalse(validatorRequest.validatorRequest().skipFileChecks()); - Assert.assertEquals(4096, validatorRequest.validatorRequest().maxCharsPerCellLimit()); + CsvValidatorJavaBridge.ReaderValidationRequest validationRequest = ((CsvValidatorJavaBridge.ReaderValidationResult) result).validatorRequest(); + Assert.assertEquals(csvFileReader, validationRequest.csvReader()); + Assert.assertEquals(csvSchemaReader, validationRequest.csvSchemaReader()); + Assert.assertFalse(validationRequest.failFast()); + Assert.assertEquals(new ArrayList(), validationRequest.pathSubstitutionsList()); + Assert.assertFalse(validationRequest.enforceCaseSensitivePathChecks()); + Assert.assertFalse(validationRequest.trace()); + Assert.assertNull(validationRequest.progress()); + Assert.assertFalse(validationRequest.skipFileChecks()); + Assert.assertEquals(4096, validationRequest.maxCharsPerCellLimit()); } @Test @@ -79,19 +79,19 @@ public void correctValuesArePassedIntoValidateMethodUsingTextFileMethod() throws .usingSkipFileChecks(true) .usingMaxCharsPerCell(8096) .runValidation(); - CsvValidatorJavaBridge.ValidationResult validatorRequest = (CsvValidatorJavaBridge.ValidationResult) result; - Assert.assertEquals("csvFile", validatorRequest.validatorRequest().csvFile()); - Assert.assertEquals(StandardCharsets.ISO_8859_1, validatorRequest.validatorRequest().csvEncoding()); - Assert.assertEquals("csvSchema", validatorRequest.validatorRequest().csvSchemaFile()); - Assert.assertEquals(StandardCharsets.ISO_8859_1, validatorRequest.validatorRequest().csvSchemaEncoding()); - Assert.assertTrue(validatorRequest.validatorRequest().failFast()); - Assert.assertEquals("fromPath", validatorRequest.validatorRequest().pathSubstitutionsList().get(0).getFrom()); - Assert.assertEquals("toPath", validatorRequest.validatorRequest().pathSubstitutionsList().get(0).getTo()); - Assert.assertTrue(validatorRequest.validatorRequest().enforceCaseSensitivePathChecks()); - Assert.assertTrue(validatorRequest.validatorRequest().trace()); - Assert.assertEquals(progressCallback, validatorRequest.validatorRequest().progress()); - Assert.assertTrue(validatorRequest.validatorRequest().skipFileChecks()); - Assert.assertEquals(8096, validatorRequest.validatorRequest().maxCharsPerCellLimit()); + CsvValidatorJavaBridge.ValidationRequest validationRequest = ((CsvValidatorJavaBridge.ValidationResult) result).validatorRequest(); + Assert.assertEquals("csvFile", validationRequest.csvFile()); + Assert.assertEquals(StandardCharsets.ISO_8859_1, validationRequest.csvEncoding()); + Assert.assertEquals("csvSchema", validationRequest.csvSchemaFile()); + Assert.assertEquals(StandardCharsets.ISO_8859_1, validationRequest.csvSchemaEncoding()); + Assert.assertTrue(validationRequest.failFast()); + Assert.assertEquals("fromPath", validationRequest.pathSubstitutionsList().get(0).getFrom()); + Assert.assertEquals("toPath", validationRequest.pathSubstitutionsList().get(0).getTo()); + Assert.assertTrue(validationRequest.enforceCaseSensitivePathChecks()); + Assert.assertTrue(validationRequest.trace()); + Assert.assertEquals(progressCallback, validationRequest.progress()); + Assert.assertTrue(validationRequest.skipFileChecks()); + Assert.assertEquals(8096, validationRequest.maxCharsPerCellLimit()); } @Test @@ -109,17 +109,17 @@ public void correctValuesArePassedIntoValidateMethodUsingReaderMethod() { .usingMaxCharsPerCell(16096) .runValidation(); - CsvValidatorJavaBridge.ReaderValidationResult validatorRequest = (CsvValidatorJavaBridge.ReaderValidationResult) result; - Assert.assertEquals(csvFileReader, validatorRequest.validatorRequest().csvReader()); - Assert.assertEquals(csvSchemaReader, validatorRequest.validatorRequest().csvSchemaReader()); - Assert.assertTrue(validatorRequest.validatorRequest().failFast()); - Assert.assertEquals("fromPath", validatorRequest.validatorRequest().pathSubstitutionsList().get(0).getFrom()); - Assert.assertEquals("toPath", validatorRequest.validatorRequest().pathSubstitutionsList().get(0).getTo()); - Assert.assertTrue(validatorRequest.validatorRequest().enforceCaseSensitivePathChecks()); - Assert.assertTrue(validatorRequest.validatorRequest().trace()); - Assert.assertEquals(progressCallback, validatorRequest.validatorRequest().progress()); - Assert.assertTrue(validatorRequest.validatorRequest().skipFileChecks()); - Assert.assertEquals(16096, validatorRequest.validatorRequest().maxCharsPerCellLimit()); + CsvValidatorJavaBridge.ReaderValidationRequest validationRequest = ((CsvValidatorJavaBridge.ReaderValidationResult) result).validatorRequest(); + Assert.assertEquals(csvFileReader, validationRequest.csvReader()); + Assert.assertEquals(csvSchemaReader, validationRequest.csvSchemaReader()); + Assert.assertTrue(validationRequest.failFast()); + Assert.assertEquals("fromPath", validationRequest.pathSubstitutionsList().get(0).getFrom()); + Assert.assertEquals("toPath", validationRequest.pathSubstitutionsList().get(0).getTo()); + Assert.assertTrue(validationRequest.enforceCaseSensitivePathChecks()); + Assert.assertTrue(validationRequest.trace()); + Assert.assertEquals(progressCallback, validationRequest.progress()); + Assert.assertTrue(validationRequest.skipFileChecks()); + Assert.assertEquals(16096, validationRequest.maxCharsPerCellLimit()); } }