From 791f68167874e9febf2686fa6eb37d59c2b5ddaa Mon Sep 17 00:00:00 2001 From: redcatbaer Date: Tue, 16 Jun 2026 21:19:22 +0200 Subject: [PATCH] #545: Refactor TagImporter to avoid Optional parameters (Sonar S3553) --- doc/changes/changes_4.6.0.md | 6 +++++- .../openfasttrace/importer/tag/TagImporter.java | 11 +++++------ .../importer/tag/TagImporterFactory.java | 2 +- .../importer/tag/TestTagImporterWithConfig.java | 3 +-- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/doc/changes/changes_4.6.0.md b/doc/changes/changes_4.6.0.md index 4368a932a..d434ff52f 100644 --- a/doc/changes/changes_4.6.0.md +++ b/doc/changes/changes_4.6.0.md @@ -8,4 +8,8 @@ We moved some GitHub action permissions from workflow-level to job-level. ## Security -* # \ No newline at end of file +* # + +## Refactoring + +* #544: Replaced optional parameter with null check \ No newline at end of file diff --git a/importer/tag/src/main/java/org/itsallcode/openfasttrace/importer/tag/TagImporter.java b/importer/tag/src/main/java/org/itsallcode/openfasttrace/importer/tag/TagImporter.java index 4e0cec6b5..b48ef70bc 100644 --- a/importer/tag/src/main/java/org/itsallcode/openfasttrace/importer/tag/TagImporter.java +++ b/importer/tag/src/main/java/org/itsallcode/openfasttrace/importer/tag/TagImporter.java @@ -2,7 +2,6 @@ import java.util.ArrayList; import java.util.List; -import java.util.Optional; import org.itsallcode.openfasttrace.api.importer.ImportEventListener; import org.itsallcode.openfasttrace.api.importer.Importer; @@ -25,21 +24,21 @@ class TagImporter implements Importer this.file = file; } - static TagImporter create(final Optional config, final InputFile file, + static TagImporter create(final PathConfig config, final InputFile file, final ImportEventListener listener) { final LineConsumer lineConsumer = createLineConsumer(config, file, listener); return new TagImporter(lineConsumer, file); } - private static LineConsumer createLineConsumer(final Optional config, - final InputFile file, final ImportEventListener listener) + private static LineConsumer createLineConsumer(final PathConfig config, final InputFile file, + final ImportEventListener listener) { final List importers = new ArrayList<>(); importers.add(new LongTagImportingLineConsumer(file, listener)); - if (config.isPresent()) + if (config != null) { - importers.add(new ShortTagImportingLineConsumer(config.get(), file, listener)); + importers.add(new ShortTagImportingLineConsumer(config, file, listener)); } return new DelegatingLineConsumer(importers); } diff --git a/importer/tag/src/main/java/org/itsallcode/openfasttrace/importer/tag/TagImporterFactory.java b/importer/tag/src/main/java/org/itsallcode/openfasttrace/importer/tag/TagImporterFactory.java index b3c705002..7daf0be2d 100644 --- a/importer/tag/src/main/java/org/itsallcode/openfasttrace/importer/tag/TagImporterFactory.java +++ b/importer/tag/src/main/java/org/itsallcode/openfasttrace/importer/tag/TagImporterFactory.java @@ -104,7 +104,7 @@ public Importer createImporter(final InputFile path, final ImportEventListener l + DEFAULT_FILE_REGEX + " and " + getPathConfigs().toList()); } final Optional config = findConfig(path); - return TagImporter.create(config, path, listener); + return TagImporter.create(config.orElse(null), path, listener); } private Stream getPathConfigs() diff --git a/importer/tag/src/test/java/org/itsallcode/openfasttrace/importer/tag/TestTagImporterWithConfig.java b/importer/tag/src/test/java/org/itsallcode/openfasttrace/importer/tag/TestTagImporterWithConfig.java index 1f3a7c8a7..17bfb1d1d 100644 --- a/importer/tag/src/test/java/org/itsallcode/openfasttrace/importer/tag/TestTagImporterWithConfig.java +++ b/importer/tag/src/test/java/org/itsallcode/openfasttrace/importer/tag/TestTagImporterWithConfig.java @@ -7,7 +7,6 @@ import java.io.StringReader; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.Optional; import org.itsallcode.openfasttrace.api.core.SpecificationItemId; import org.itsallcode.openfasttrace.api.importer.ImportEventListener; @@ -152,6 +151,6 @@ private void runImport(final String content) final InputFile file = StreamInput.forReader(FILE, new BufferedReader(new StringReader(content))); - TagImporter.create(Optional.of(this.configMock), file, this.listenerMock).runImport(); + TagImporter.create(this.configMock, file, this.listenerMock).runImport(); } }