From 94b7b75de7da3bc656e493a9a402bf914a973dd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20R=C3=B6schke?= Date: Tue, 9 Jul 2024 07:12:13 +0200 Subject: [PATCH] Moved Autoload to validator --- .../org/mustangproject/validator/PDFValidator.java | 13 +++++++------ .../org/mustangproject/validator/Validator.java | 5 +++++ .../org/mustangproject/validator/XMLValidator.java | 6 ------ .../mustangproject/validator/ZUGFeRDValidator.java | 3 ++- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/validator/src/main/java/org/mustangproject/validator/PDFValidator.java b/validator/src/main/java/org/mustangproject/validator/PDFValidator.java index e9c04eb3..4504838f 100644 --- a/validator/src/main/java/org/mustangproject/validator/PDFValidator.java +++ b/validator/src/main/java/org/mustangproject/validator/PDFValidator.java @@ -65,6 +65,7 @@ public class PDFValidator extends Validator { private String Signature; private String zfXML = null; + protected boolean autoload=true; protected static boolean stringArrayContains(String[] arr, String targetValue) { return Arrays.asList(arr).contains(targetValue); @@ -319,13 +320,13 @@ public class PDFValidator extends Validator { @Override public void setFilename(String filename) throws IrrecoverableValidationError { this.pdfFilename = filename; - try { - fileContents=Files.readAllBytes(Paths.get(pdfFilename)); - } catch (IOException ex) { - throw new IrrecoverableValidationError("Could not read file"); + if(autoload) { + try { + fileContents=Files.readAllBytes(Paths.get(pdfFilename)); + } catch (IOException ex) { + throw new IrrecoverableValidationError("Could not read file"); + } } - - } public void setFileContents(byte[] fileContents) { diff --git a/validator/src/main/java/org/mustangproject/validator/Validator.java b/validator/src/main/java/org/mustangproject/validator/Validator.java index 14f16787..545ee574 100644 --- a/validator/src/main/java/org/mustangproject/validator/Validator.java +++ b/validator/src/main/java/org/mustangproject/validator/Validator.java @@ -19,6 +19,7 @@ public abstract class Validator { private static final Logger LOGGER = LoggerFactory.getLogger(Validator.class.getCanonicalName()); // log output protected ValidationContext context; + protected boolean autoload=true; public Validator(ValidationContext ctx){ this.context=ctx; @@ -77,6 +78,10 @@ public abstract class Validator { return context; } + public void setAutoload(boolean autoload) { + this.autoload = autoload; + } + } diff --git a/validator/src/main/java/org/mustangproject/validator/XMLValidator.java b/validator/src/main/java/org/mustangproject/validator/XMLValidator.java index aa9449cc..fa8bc1a9 100644 --- a/validator/src/main/java/org/mustangproject/validator/XMLValidator.java +++ b/validator/src/main/java/org/mustangproject/validator/XMLValidator.java @@ -36,7 +36,6 @@ public class XMLValidator extends Validator { protected String zfXML = ""; protected String filename = ""; - protected boolean autoload=true; int firedRules = 0; int failedRules = 0; boolean disableNotices = false; @@ -74,11 +73,6 @@ public class XMLValidator extends Validator { } - public void disableAutoload() { - // for streaming, which sets a fake filename - autoload=false; - } - /*** * manually set the xml content * @param xml the xml to be checked diff --git a/validator/src/main/java/org/mustangproject/validator/ZUGFeRDValidator.java b/validator/src/main/java/org/mustangproject/validator/ZUGFeRDValidator.java index 8ef0a186..88a0df1d 100644 --- a/validator/src/main/java/org/mustangproject/validator/ZUGFeRDValidator.java +++ b/validator/src/main/java/org/mustangproject/validator/ZUGFeRDValidator.java @@ -257,6 +257,7 @@ public class ZUGFeRDValidator { isPDF = ByteArraySearcher.contains(content, new byte[]{'%', 'P', 'D', 'F'}); XMLValidator xv = new XMLValidator(context); if (isPDF) { + pdfv.setAutoload(false); pdfv.setFilename(fileNameOfInputStream); pdfv.setFileContents(content); @@ -296,7 +297,7 @@ public class ZUGFeRDValidator { if (isXML) { pdfValidity = true; optionsRecognized = true; - xv.disableAutoload(); + xv.setAutoload(false); xv.setFilename(fileNameOfInputStream); sha1Checksum = calcSHA1(inputStream);