diff --git a/docs/arbeitspakete/m1/berichte/AP03-bericht.md b/docs/arbeitspakete/m1/berichte/AP03-bericht.md new file mode 100644 index 0000000..bde2c03 --- /dev/null +++ b/docs/arbeitspakete/m1/berichte/AP03-bericht.md @@ -0,0 +1,160 @@ +# Abschlussbericht Arbeitspaket AP03 – Hexagonale Paketstruktur anlegen und Ist-Code migrieren + +> **Bezug:** `docs/arbeitspakete/m1/AP03-hexagonale-paketstruktur.md` +> **Bearbeiter:** Claude Code (claude-sonnet-4-6) +> **Datum:** 2026-04-09 +> **Commit(s):** _ausstehend – wird vom Menschen nach Sichtung gesetzt_ +> **Status:** ✅ abgeschlossen + +## 1. Zusammenfassung + +Die hexagonale Soll-Paketstruktur wurde vollständig angelegt und alle 16 bestehenden Klassen aus den Ist-Paketen (`cli`, `parser`, `validation`, `validation.model`, `validation.field`, `validation.structure`) in die neuen Soll-Pakete verschoben. Alle 147 Tests laufen weiterhin grün. Keine Logik wurde geändert, keine Klassen wurden gelöscht oder neu erzeugt (außer den 8 obligatorischen `package-info.java`-Dateien). + +## 2. Umgesetzte Änderungen + +### 2.1 Neue Verzeichnisstruktur (Soll-Pakete) + +Folgende Pakete wurden als Java-Packages angelegt: + +| Paket | Status | +|---|---| +| `de.gecheckt.asv.domain` | ✅ vorhanden (kein Inhalt verschoben; bereits korrekt) | +| `de.gecheckt.asv.application` | ✅ neu angelegt, mit Inhalt befüllt | +| `de.gecheckt.asv.adapter.in.cli` | ✅ neu angelegt, mit Inhalt befüllt | +| `de.gecheckt.asv.adapter.out.filesystem` | ✅ neu angelegt, leer (AP07) | +| `de.gecheckt.asv.adapter.out.parsing` | ✅ neu angelegt, mit Inhalt befüllt | +| `de.gecheckt.asv.adapter.out.reporting` | ✅ neu angelegt, mit Inhalt befüllt | +| `de.gecheckt.asv.adapter.out.logging` | ✅ neu angelegt, leer (AP04) | +| `de.gecheckt.asv.bootstrap` | ✅ neu angelegt, leer (AP06) | + +### 2.2 Vorher-Nachher-Tabelle aller migrierten Klassen (Produktivcode) + +| Alter Pfad (Ist) | Neuer Pfad (Soll) | +|---|---| +| `de.gecheckt.asv.cli.AsvValidatorApplication` | `de.gecheckt.asv.adapter.in.cli.AsvValidatorApplication` | +| `de.gecheckt.asv.cli.ValidationResultPrinter` | `de.gecheckt.asv.adapter.out.reporting.ValidationResultPrinter` | +| `de.gecheckt.asv.parser.InputFileParser` | `de.gecheckt.asv.adapter.out.parsing.InputFileParser` | +| `de.gecheckt.asv.parser.DefaultInputFileParser` | `de.gecheckt.asv.adapter.out.parsing.DefaultInputFileParser` | +| `de.gecheckt.asv.parser.SegmentLineTokenizer` | `de.gecheckt.asv.adapter.out.parsing.SegmentLineTokenizer` | +| `de.gecheckt.asv.parser.DefaultSegmentLineTokenizer` | `de.gecheckt.asv.adapter.out.parsing.DefaultSegmentLineTokenizer` | +| `de.gecheckt.asv.parser.InputFileParseException` | `de.gecheckt.asv.adapter.out.parsing.InputFileParseException` | +| `de.gecheckt.asv.validation.InputFileValidator` | `de.gecheckt.asv.application.InputFileValidator` | +| `de.gecheckt.asv.validation.DefaultInputFileValidator` | `de.gecheckt.asv.application.DefaultInputFileValidator` | +| `de.gecheckt.asv.validation.model.ValidationError` | `de.gecheckt.asv.application.model.ValidationError` | +| `de.gecheckt.asv.validation.model.ValidationResult` | `de.gecheckt.asv.application.model.ValidationResult` | +| `de.gecheckt.asv.validation.model.ValidationSeverity` | `de.gecheckt.asv.application.model.ValidationSeverity` | +| `de.gecheckt.asv.validation.field.FieldValidator` | `de.gecheckt.asv.application.field.FieldValidator` | +| `de.gecheckt.asv.validation.field.DefaultFieldValidator` | `de.gecheckt.asv.application.field.DefaultFieldValidator` | +| `de.gecheckt.asv.validation.structure.StructureValidator` | `de.gecheckt.asv.application.structure.StructureValidator` | +| `de.gecheckt.asv.validation.structure.DefaultStructureValidator` | `de.gecheckt.asv.application.structure.DefaultStructureValidator` | + +**Nicht migriert (Absicht):** +- `de.gecheckt.asv.domain.model.*` — Zielpfad ist identisch zum Quellpfad; keine Verschiebung nötig. + +### 2.3 Vorher-Nachher-Tabelle aller migrierten Testklassen + +| Alter Pfad (Ist) | Neuer Pfad (Soll) | +|---|---| +| `de.gecheckt.asv.cli.AsvValidatorApplicationTest` | `de.gecheckt.asv.adapter.in.cli.AsvValidatorApplicationTest` | +| `de.gecheckt.asv.cli.AsvValidatorApplicationAdditionalTest` | `de.gecheckt.asv.adapter.in.cli.AsvValidatorApplicationAdditionalTest` | +| `de.gecheckt.asv.cli.ValidationResultPrinterTest` | `de.gecheckt.asv.adapter.out.reporting.ValidationResultPrinterTest` | +| `de.gecheckt.asv.parser.DefaultInputFileParserTest` | `de.gecheckt.asv.adapter.out.parsing.DefaultInputFileParserTest` | +| `de.gecheckt.asv.parser.DefaultSegmentLineTokenizerTest` | `de.gecheckt.asv.adapter.out.parsing.DefaultSegmentLineTokenizerTest` | +| `de.gecheckt.asv.validation.DefaultInputFileValidatorTest` | `de.gecheckt.asv.application.DefaultInputFileValidatorTest` | +| `de.gecheckt.asv.validation.model.ValidationErrorTest` | `de.gecheckt.asv.application.model.ValidationErrorTest` | +| `de.gecheckt.asv.validation.model.ValidationResultTest` | `de.gecheckt.asv.application.model.ValidationResultTest` | +| `de.gecheckt.asv.validation.field.DefaultFieldValidatorTest` | `de.gecheckt.asv.application.field.DefaultFieldValidatorTest` | +| `de.gecheckt.asv.validation.structure.DefaultStructureValidatorTest` | `de.gecheckt.asv.application.structure.DefaultStructureValidatorTest` | +| `de.gecheckt.asv.validation.structure.DefaultStructureValidatorTestAdditional` | `de.gecheckt.asv.application.structure.DefaultStructureValidatorTestAdditional` | +| `de.gecheckt.asv.validation.structure.DefaultStructureValidatorAsvfehFhlSegmentTest` | `de.gecheckt.asv.application.structure.DefaultStructureValidatorAsvfehFhlSegmentTest` | +| `de.gecheckt.asv.validation.structure.DefaultStructureValidatorAsvrecRechnungsbetragTest` | `de.gecheckt.asv.application.structure.DefaultStructureValidatorAsvrecRechnungsbetragTest` | +| `de.gecheckt.asv.validation.structure.DefaultStructureValidatorAsvrecRechnungskennzeichenTest` | `de.gecheckt.asv.application.structure.DefaultStructureValidatorAsvrecRechnungskennzeichenTest` | +| `de.gecheckt.asv.validation.structure.DefaultStructureValidatorAsvrecSegmentCardinalityTest` | `de.gecheckt.asv.application.structure.DefaultStructureValidatorAsvrecSegmentCardinalityTest` | +| `de.gecheckt.asv.validation.structure.DefaultStructureValidatorAsvrecSegmentOrderTest` | `de.gecheckt.asv.application.structure.DefaultStructureValidatorAsvrecSegmentOrderTest` | +| `de.gecheckt.asv.validation.structure.DefaultStructureValidatorAsvrecSegmentsTest` | `de.gecheckt.asv.application.structure.DefaultStructureValidatorAsvrecSegmentsTest` | + +### 2.4 Neue package-info.java-Dateien + +Für jede der 8 Soll-Paket-Wurzeln wurde eine `package-info.java` mit deutscher JavaDoc-Kurzbeschreibung angelegt: + +- `de/gecheckt/asv/domain/package-info.java` +- `de/gecheckt/asv/application/package-info.java` +- `de/gecheckt/asv/adapter/in/cli/package-info.java` +- `de/gecheckt/asv/adapter/out/filesystem/package-info.java` +- `de/gecheckt/asv/adapter/out/parsing/package-info.java` +- `de/gecheckt/asv/adapter/out/reporting/package-info.java` +- `de/gecheckt/asv/adapter/out/logging/package-info.java` +- `de/gecheckt/asv/bootstrap/package-info.java` + +Das Paket `adapter.out.crypto` wurde bewusst nicht angelegt (kommt erst in M8). + +## 3. Scope-Treue + +| Scope-Punkt aus dem Arbeitspaket | Erfüllt? | Bemerkung | +|---|---|---| +| Anlage aller 8 Soll-Pakete | ✅ | Alle Pakete als Java-Packages vorhanden | +| Migration `cli.AsvValidatorApplication` → `adapter.in.cli` | ✅ | Nur Package und Imports angepasst | +| Migration `cli.ValidationResultPrinter` → `adapter.out.reporting` | ✅ | Nur Package und Imports angepasst | +| `domain.model.*` bleibt unverändert | ✅ | Korrekt — kein Umzug nötig | +| Migration `parser.*` → `adapter.out.parsing` | ✅ | 5 Klassen verschoben | +| Migration `validation.*` → `application` (vorläufig) | ✅ | 2 Klassen + 3 Unterpaketgruppen | +| Alle `package`-Deklarationen und `import`-Statements angepasst | ✅ | Kein verbleibender Verweis auf Ist-Pakete | +| Tests entsprechend mitverschoben | ✅ | 17 Testklassen verschoben und angepasst | +| Build und Tests grün | ✅ | 147 Tests, BUILD SUCCESS | +| package-info.java pro Paket-Wurzel | ✅ | 8 Dateien angelegt | +| Keine inhaltlichen Umstellungen (Exit-Codes, Charset, …) | ✅ | Kein Scope-Out angefasst | +| Keine neuen Klassen außer package-info.java | ✅ | | +| Keine gelöschten Klassen | ✅ | | +| Kein Refactoring von Methoden | ✅ | | + +**Wurde der Scope eingehalten?** Ja, vollständig. + +**Wurden Dinge außerhalb des Scopes gemacht?** Nein. + +## 4. Abnahmekriterien + +| Abnahmekriterium | Erfüllt? | Nachweis | +|---|---|---| +| Alle Soll-Pakete existieren als Java-Packages | ✅ | `git status` zeigt alle Verzeichnisse | +| Kein Code verloren gegangen | ✅ | Nur `RM`-Einträge (renamed+modified) in `git status`, keine `D`-Einträge | +| `mvn clean verify` grün | ✅ | `Tests run: 147, Failures: 0, Errors: 0, Skipped: 0` | +| Jede neue Paket-Wurzel hat `package-info.java` | ✅ | 8 Dateien, alle mit deutscher Kurzbeschreibung | +| Abschlussbericht enthält Vorher-Nachher-Tabelle | ✅ | Abschnitt 2.2 und 2.3 | +| Keine neuen Features | ✅ | Reine Verschiebungsoperation | + +## 5. Build- und Teststatus + +- `mvn clean verify`: ✅ grün +- Anzahl Tests: 147 (davon 0 neu hinzugefügt — nur verschoben) +- Coverage (JaCoCo): nicht explizit geprüft; JaCoCo-Report wird weiterhin erzeugt +- Warnungen beim Build: Nur die bekannte javac-Annotationsverarbeitungs-Warnung (aus AP02 bekannt, kein Handlungsbedarf in AP03) + +## 6. Rest-Risiken und offene Punkte + +1. **Provisorische Lage von `validation.*`-Klassen unter `application`:** `DefaultStructureValidator`, `DefaultFieldValidator` und ihre Interfaces liegen jetzt unter `application`. AP09 entscheidet, ob sie dort bleiben oder in ein separates Preview-Paket wandern (M3+). + +2. **`AsvValidatorApplication` noch monolithisch:** Die Klasse enthält weiterhin Bootstrap-Logik, CLI-Logik, Dateisystemzugriff und Log4j2-Direct-Import. Zerlegung folgt in AP06. + +3. **`DefaultStructureValidatorTestAdditional` ohne `@Test`-Methoden:** Bereits aus AP01 bekannt; kein AP03-Thema, bleibt als Rest-Risiko bestehen (AP10 vorgesehen). + +4. **Log4j2-Direktimport in `AsvValidatorApplication`:** Verletzt die Architekturkonvention (Log4j2 nur in `adapter.out.logging` und `bootstrap`). Wird in AP04/AP06 behoben; in AP03 bewusst nicht angefasst (Scope OUT). + +## 7. Empfehlungen für Folge-Arbeitspakete + +- **AP04 (Logging-Infrastruktur):** SLF4J-Fassade einführen; `AsvValidatorApplication` nutzt noch `LogManager` direkt — das muss auf SLF4J umgestellt werden. Das `adapter.out.logging`-Paket ist bereit. + +- **AP06 (Bootstrap/CLI):** `AsvValidatorApplication` aufteilen. Das `bootstrap`-Paket ist angelegt und wartet auf seine Bootstrap-Klasse. `adapter.in.cli` erhält dann nur noch den dünnen CLI-Runner. + +- **AP07 (Dateisystem-Adapter):** `adapter.out.filesystem` ist angelegt und bereit für Datei-Lese-/Schreibzugriff. + +- **AP09 (Preview-Einfrieren):** Die Validation-Klassen unter `application.structure` und `application.field` sind M3+-Vorbau und sollen dort eingefroren werden. Die Entscheidung, ob sie im `application`-Paket bleiben oder in ein separates Preview-Paket wandern, liegt bei AP09. + +## 8. Reviewer-Checkliste + +- [x] Alle im Arbeitspaket genannten Scope-IN-Punkte sind nachweislich umgesetzt (Abschnitt 2 und 3) +- [x] Keine Scope-OUT-Punkte wurden angefasst (keine Logikänderungen, keine neuen Features) +- [x] Abnahmekriterien sind mit konkreten Nachweisen belegt (Abschnitt 4) +- [x] `mvn clean verify` ist grün (147 Tests, BUILD SUCCESS) +- [ ] Der Commit für dieses AP hat eine sprechende Message (`M1-AP03: Hexagonale Paketstruktur angelegt, Ist-Code migriert`) — _Commit liegt beim Menschen_ +- [x] Keine Regeln der Grunddokumente (Spec, Fachliche, Technik) wurden verletzt +- [x] Rest-Risiken sind ehrlich dokumentiert (Abschnitt 6) diff --git a/src/main/java/de/gecheckt/asv/cli/AsvValidatorApplication.java b/src/main/java/de/gecheckt/asv/adapter/in/cli/AsvValidatorApplication.java similarity index 86% rename from src/main/java/de/gecheckt/asv/cli/AsvValidatorApplication.java rename to src/main/java/de/gecheckt/asv/adapter/in/cli/AsvValidatorApplication.java index 6e1cd7f..8cdd45d 100644 --- a/src/main/java/de/gecheckt/asv/cli/AsvValidatorApplication.java +++ b/src/main/java/de/gecheckt/asv/adapter/in/cli/AsvValidatorApplication.java @@ -1,18 +1,19 @@ -package de.gecheckt.asv.cli; +package de.gecheckt.asv.adapter.in.cli; import de.gecheckt.asv.domain.model.InputFile; -import de.gecheckt.asv.parser.DefaultInputFileParser; -import de.gecheckt.asv.parser.DefaultSegmentLineTokenizer; -import de.gecheckt.asv.parser.InputFileParseException; -import de.gecheckt.asv.parser.InputFileParser; -import de.gecheckt.asv.parser.SegmentLineTokenizer; -import de.gecheckt.asv.validation.DefaultInputFileValidator; -import de.gecheckt.asv.validation.InputFileValidator; -import de.gecheckt.asv.validation.field.DefaultFieldValidator; -import de.gecheckt.asv.validation.field.FieldValidator; -import de.gecheckt.asv.validation.model.ValidationResult; -import de.gecheckt.asv.validation.structure.DefaultStructureValidator; -import de.gecheckt.asv.validation.structure.StructureValidator; +import de.gecheckt.asv.adapter.out.parsing.DefaultInputFileParser; +import de.gecheckt.asv.adapter.out.parsing.DefaultSegmentLineTokenizer; +import de.gecheckt.asv.adapter.out.parsing.InputFileParseException; +import de.gecheckt.asv.adapter.out.parsing.InputFileParser; +import de.gecheckt.asv.adapter.out.parsing.SegmentLineTokenizer; +import de.gecheckt.asv.application.DefaultInputFileValidator; +import de.gecheckt.asv.application.InputFileValidator; +import de.gecheckt.asv.application.field.DefaultFieldValidator; +import de.gecheckt.asv.application.field.FieldValidator; +import de.gecheckt.asv.application.model.ValidationResult; +import de.gecheckt.asv.application.structure.DefaultStructureValidator; +import de.gecheckt.asv.application.structure.StructureValidator; +import de.gecheckt.asv.adapter.out.reporting.ValidationResultPrinter; import java.io.IOException; import java.nio.charset.StandardCharsets; diff --git a/src/main/java/de/gecheckt/asv/adapter/in/cli/package-info.java b/src/main/java/de/gecheckt/asv/adapter/in/cli/package-info.java new file mode 100644 index 0000000..b420533 --- /dev/null +++ b/src/main/java/de/gecheckt/asv/adapter/in/cli/package-info.java @@ -0,0 +1,7 @@ +/** + * Eingehender CLI-Adapter des ASV-Format-Validators. + * Enthält den Haupteinstiegspunkt {@code AsvValidatorApplication}, der + * Kommandozeilenargumente entgegennimmt und die Verarbeitungskette anstößt. + * Wird in AP06 in Bootstrap-Klasse und dünnen CLI-Runner aufgeteilt. + */ +package de.gecheckt.asv.adapter.in.cli; diff --git a/src/main/java/de/gecheckt/asv/adapter/out/filesystem/package-info.java b/src/main/java/de/gecheckt/asv/adapter/out/filesystem/package-info.java new file mode 100644 index 0000000..0f90558 --- /dev/null +++ b/src/main/java/de/gecheckt/asv/adapter/out/filesystem/package-info.java @@ -0,0 +1,7 @@ +/** + * Ausgehender Dateisystem-Adapter des ASV-Format-Validators. + * Verantwortlich für den lesenden und schreibenden Zugriff auf das Dateisystem, + * insbesondere für Eingabedateien und Ausgabedateien (Berichte, Logs). + * Wird ab AP07 mit Inhalt befüllt. + */ +package de.gecheckt.asv.adapter.out.filesystem; diff --git a/src/main/java/de/gecheckt/asv/adapter/out/logging/package-info.java b/src/main/java/de/gecheckt/asv/adapter/out/logging/package-info.java new file mode 100644 index 0000000..c509fe5 --- /dev/null +++ b/src/main/java/de/gecheckt/asv/adapter/out/logging/package-info.java @@ -0,0 +1,8 @@ +/** + * Ausgehender Logging-Adapter des ASV-Format-Validators. + * Enthält Log4j2-spezifische Konfiguration und Initialisierung. + * Log4j2-Typen dürfen projektweiter Konvention gemäß nur in diesem Paket + * und im {@code bootstrap}-Paket direkt verwendet werden. + * Wird ab AP04 mit Inhalt befüllt. + */ +package de.gecheckt.asv.adapter.out.logging; diff --git a/src/main/java/de/gecheckt/asv/parser/DefaultInputFileParser.java b/src/main/java/de/gecheckt/asv/adapter/out/parsing/DefaultInputFileParser.java similarity index 98% rename from src/main/java/de/gecheckt/asv/parser/DefaultInputFileParser.java rename to src/main/java/de/gecheckt/asv/adapter/out/parsing/DefaultInputFileParser.java index ce75db8..1a3cc43 100644 --- a/src/main/java/de/gecheckt/asv/parser/DefaultInputFileParser.java +++ b/src/main/java/de/gecheckt/asv/adapter/out/parsing/DefaultInputFileParser.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.parser; +package de.gecheckt.asv.adapter.out.parsing; import de.gecheckt.asv.domain.model.Field; import de.gecheckt.asv.domain.model.InputFile; diff --git a/src/main/java/de/gecheckt/asv/parser/DefaultSegmentLineTokenizer.java b/src/main/java/de/gecheckt/asv/adapter/out/parsing/DefaultSegmentLineTokenizer.java similarity index 97% rename from src/main/java/de/gecheckt/asv/parser/DefaultSegmentLineTokenizer.java rename to src/main/java/de/gecheckt/asv/adapter/out/parsing/DefaultSegmentLineTokenizer.java index 04f3780..c69b0f4 100644 --- a/src/main/java/de/gecheckt/asv/parser/DefaultSegmentLineTokenizer.java +++ b/src/main/java/de/gecheckt/asv/adapter/out/parsing/DefaultSegmentLineTokenizer.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.parser; +package de.gecheckt.asv.adapter.out.parsing; import de.gecheckt.asv.domain.model.Field; import java.util.ArrayList; diff --git a/src/main/java/de/gecheckt/asv/parser/InputFileParseException.java b/src/main/java/de/gecheckt/asv/adapter/out/parsing/InputFileParseException.java similarity index 95% rename from src/main/java/de/gecheckt/asv/parser/InputFileParseException.java rename to src/main/java/de/gecheckt/asv/adapter/out/parsing/InputFileParseException.java index 5a2315c..c413e70 100644 --- a/src/main/java/de/gecheckt/asv/parser/InputFileParseException.java +++ b/src/main/java/de/gecheckt/asv/adapter/out/parsing/InputFileParseException.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.parser; +package de.gecheckt.asv.adapter.out.parsing; /** * Exception thrown when an input file cannot be parsed due to format or content issues. diff --git a/src/main/java/de/gecheckt/asv/parser/InputFileParser.java b/src/main/java/de/gecheckt/asv/adapter/out/parsing/InputFileParser.java similarity index 93% rename from src/main/java/de/gecheckt/asv/parser/InputFileParser.java rename to src/main/java/de/gecheckt/asv/adapter/out/parsing/InputFileParser.java index 869a7b1..1794cf0 100644 --- a/src/main/java/de/gecheckt/asv/parser/InputFileParser.java +++ b/src/main/java/de/gecheckt/asv/adapter/out/parsing/InputFileParser.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.parser; +package de.gecheckt.asv.adapter.out.parsing; import de.gecheckt.asv.domain.model.InputFile; diff --git a/src/main/java/de/gecheckt/asv/parser/SegmentLineTokenizer.java b/src/main/java/de/gecheckt/asv/adapter/out/parsing/SegmentLineTokenizer.java similarity index 93% rename from src/main/java/de/gecheckt/asv/parser/SegmentLineTokenizer.java rename to src/main/java/de/gecheckt/asv/adapter/out/parsing/SegmentLineTokenizer.java index 3e5e2c4..92d2c64 100644 --- a/src/main/java/de/gecheckt/asv/parser/SegmentLineTokenizer.java +++ b/src/main/java/de/gecheckt/asv/adapter/out/parsing/SegmentLineTokenizer.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.parser; +package de.gecheckt.asv.adapter.out.parsing; import de.gecheckt.asv.domain.model.Field; import java.util.List; diff --git a/src/main/java/de/gecheckt/asv/adapter/out/parsing/package-info.java b/src/main/java/de/gecheckt/asv/adapter/out/parsing/package-info.java new file mode 100644 index 0000000..ff6aad6 --- /dev/null +++ b/src/main/java/de/gecheckt/asv/adapter/out/parsing/package-info.java @@ -0,0 +1,7 @@ +/** + * Ausgehender Parser-Adapter des ASV-Format-Validators. + * Enthält die Implementierung des EDIFACT-Zeilenparsers, der den Rohtext + * einer ASV-Eingabedatei in das Domänenmodell ({@code InputFile}) überführt. + * Trennzeichen-Logik basiert vorläufig auf '+' (UNA-Segment noch nicht ausgewertet). + */ +package de.gecheckt.asv.adapter.out.parsing; diff --git a/src/main/java/de/gecheckt/asv/cli/ValidationResultPrinter.java b/src/main/java/de/gecheckt/asv/adapter/out/reporting/ValidationResultPrinter.java similarity index 93% rename from src/main/java/de/gecheckt/asv/cli/ValidationResultPrinter.java rename to src/main/java/de/gecheckt/asv/adapter/out/reporting/ValidationResultPrinter.java index f49d476..01e24c9 100644 --- a/src/main/java/de/gecheckt/asv/cli/ValidationResultPrinter.java +++ b/src/main/java/de/gecheckt/asv/adapter/out/reporting/ValidationResultPrinter.java @@ -1,7 +1,7 @@ -package de.gecheckt.asv.cli; +package de.gecheckt.asv.adapter.out.reporting; -import de.gecheckt.asv.validation.model.ValidationError; -import de.gecheckt.asv.validation.model.ValidationResult; +import de.gecheckt.asv.application.model.ValidationError; +import de.gecheckt.asv.application.model.ValidationResult; /** * Printer-Klasse zum Ausgeben von ValidationResult-Objekten auf der Konsole. diff --git a/src/main/java/de/gecheckt/asv/adapter/out/reporting/package-info.java b/src/main/java/de/gecheckt/asv/adapter/out/reporting/package-info.java new file mode 100644 index 0000000..14ec5eb --- /dev/null +++ b/src/main/java/de/gecheckt/asv/adapter/out/reporting/package-info.java @@ -0,0 +1,6 @@ +/** + * Ausgehender Reporting-Adapter des ASV-Format-Validators. + * Enthält die Darstellungslogik für Validierungsergebnisse ({@code ValidationResultPrinter}). + * Gibt Prüfbefunde formatiert auf der Konsole aus; Dateiausgabe folgt in AP07. + */ +package de.gecheckt.asv.adapter.out.reporting; diff --git a/src/main/java/de/gecheckt/asv/validation/DefaultInputFileValidator.java b/src/main/java/de/gecheckt/asv/application/DefaultInputFileValidator.java similarity index 90% rename from src/main/java/de/gecheckt/asv/validation/DefaultInputFileValidator.java rename to src/main/java/de/gecheckt/asv/application/DefaultInputFileValidator.java index 54b8f2f..e1bdac6 100644 --- a/src/main/java/de/gecheckt/asv/validation/DefaultInputFileValidator.java +++ b/src/main/java/de/gecheckt/asv/application/DefaultInputFileValidator.java @@ -1,13 +1,13 @@ -package de.gecheckt.asv.validation; +package de.gecheckt.asv.application; import java.util.ArrayList; import java.util.List; import java.util.Objects; import de.gecheckt.asv.domain.model.InputFile; -import de.gecheckt.asv.validation.field.FieldValidator; -import de.gecheckt.asv.validation.model.ValidationResult; -import de.gecheckt.asv.validation.structure.StructureValidator; +import de.gecheckt.asv.application.field.FieldValidator; +import de.gecheckt.asv.application.model.ValidationResult; +import de.gecheckt.asv.application.structure.StructureValidator; /** * Standardimplementierung von InputFileValidator, die mehrere spezialisierte Validatoren orchestriert. diff --git a/src/main/java/de/gecheckt/asv/validation/InputFileValidator.java b/src/main/java/de/gecheckt/asv/application/InputFileValidator.java similarity index 88% rename from src/main/java/de/gecheckt/asv/validation/InputFileValidator.java rename to src/main/java/de/gecheckt/asv/application/InputFileValidator.java index 7fc5dbc..a7cbe2c 100644 --- a/src/main/java/de/gecheckt/asv/validation/InputFileValidator.java +++ b/src/main/java/de/gecheckt/asv/application/InputFileValidator.java @@ -1,7 +1,7 @@ -package de.gecheckt.asv.validation; +package de.gecheckt.asv.application; import de.gecheckt.asv.domain.model.InputFile; -import de.gecheckt.asv.validation.model.ValidationResult; +import de.gecheckt.asv.application.model.ValidationResult; /** * Interface für die Orchestrierung der Validierung einer ASV-Eingabedatei. diff --git a/src/main/java/de/gecheckt/asv/validation/field/DefaultFieldValidator.java b/src/main/java/de/gecheckt/asv/application/field/DefaultFieldValidator.java similarity index 97% rename from src/main/java/de/gecheckt/asv/validation/field/DefaultFieldValidator.java rename to src/main/java/de/gecheckt/asv/application/field/DefaultFieldValidator.java index 33475d6..18042de 100644 --- a/src/main/java/de/gecheckt/asv/validation/field/DefaultFieldValidator.java +++ b/src/main/java/de/gecheckt/asv/application/field/DefaultFieldValidator.java @@ -1,13 +1,13 @@ -package de.gecheckt.asv.validation.field; +package de.gecheckt.asv.application.field; import java.util.ArrayList; import java.util.List; import de.gecheckt.asv.domain.model.Field; import de.gecheckt.asv.domain.model.InputFile; -import de.gecheckt.asv.validation.model.ValidationError; -import de.gecheckt.asv.validation.model.ValidationResult; -import de.gecheckt.asv.validation.model.ValidationSeverity; +import de.gecheckt.asv.application.model.ValidationError; +import de.gecheckt.asv.application.model.ValidationResult; +import de.gecheckt.asv.application.model.ValidationSeverity; /** * Default implementation of FieldValidator that checks general field rules. diff --git a/src/main/java/de/gecheckt/asv/validation/field/FieldValidator.java b/src/main/java/de/gecheckt/asv/application/field/FieldValidator.java similarity index 85% rename from src/main/java/de/gecheckt/asv/validation/field/FieldValidator.java rename to src/main/java/de/gecheckt/asv/application/field/FieldValidator.java index cca2a16..9bd2fc7 100644 --- a/src/main/java/de/gecheckt/asv/validation/field/FieldValidator.java +++ b/src/main/java/de/gecheckt/asv/application/field/FieldValidator.java @@ -1,7 +1,7 @@ -package de.gecheckt.asv.validation.field; +package de.gecheckt.asv.application.field; import de.gecheckt.asv.domain.model.InputFile; -import de.gecheckt.asv.validation.model.ValidationResult; +import de.gecheckt.asv.application.model.ValidationResult; /** * Interface für die Validierung von Feldern in einer ASV-Eingabedatei. diff --git a/src/main/java/de/gecheckt/asv/validation/model/ValidationError.java b/src/main/java/de/gecheckt/asv/application/model/ValidationError.java similarity index 98% rename from src/main/java/de/gecheckt/asv/validation/model/ValidationError.java rename to src/main/java/de/gecheckt/asv/application/model/ValidationError.java index 28a9278..b18fb62 100644 --- a/src/main/java/de/gecheckt/asv/validation/model/ValidationError.java +++ b/src/main/java/de/gecheckt/asv/application/model/ValidationError.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.validation.model; +package de.gecheckt.asv.application.model; import java.util.Objects; import java.util.Optional; diff --git a/src/main/java/de/gecheckt/asv/validation/model/ValidationResult.java b/src/main/java/de/gecheckt/asv/application/model/ValidationResult.java similarity index 98% rename from src/main/java/de/gecheckt/asv/validation/model/ValidationResult.java rename to src/main/java/de/gecheckt/asv/application/model/ValidationResult.java index fee83a0..4587ed1 100644 --- a/src/main/java/de/gecheckt/asv/validation/model/ValidationResult.java +++ b/src/main/java/de/gecheckt/asv/application/model/ValidationResult.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.validation.model; +package de.gecheckt.asv.application.model; import java.util.List; import java.util.Objects; diff --git a/src/main/java/de/gecheckt/asv/validation/model/ValidationSeverity.java b/src/main/java/de/gecheckt/asv/application/model/ValidationSeverity.java similarity index 87% rename from src/main/java/de/gecheckt/asv/validation/model/ValidationSeverity.java rename to src/main/java/de/gecheckt/asv/application/model/ValidationSeverity.java index dd609dd..f957f2d 100644 --- a/src/main/java/de/gecheckt/asv/validation/model/ValidationSeverity.java +++ b/src/main/java/de/gecheckt/asv/application/model/ValidationSeverity.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.validation.model; +package de.gecheckt.asv.application.model; /** * Repräsentiert die Schweregrade von Validierungsergebnissen. diff --git a/src/main/java/de/gecheckt/asv/application/package-info.java b/src/main/java/de/gecheckt/asv/application/package-info.java new file mode 100644 index 0000000..f7d2ec7 --- /dev/null +++ b/src/main/java/de/gecheckt/asv/application/package-info.java @@ -0,0 +1,8 @@ +/** + * Anwendungsschicht des ASV-Format-Validators. + * Orchestriert die Validierung von ASV-Eingabedateien durch Koordination + * spezialisierter Validatoren (Struktur- und Feldvalidierung). + * Enthält vorläufig auch Validierungsmodell, Feld- und Strukturvalidatoren + * bis zur finalen Einordnung in AP09. + */ +package de.gecheckt.asv.application; diff --git a/src/main/java/de/gecheckt/asv/validation/structure/DefaultStructureValidator.java b/src/main/java/de/gecheckt/asv/application/structure/DefaultStructureValidator.java similarity index 99% rename from src/main/java/de/gecheckt/asv/validation/structure/DefaultStructureValidator.java rename to src/main/java/de/gecheckt/asv/application/structure/DefaultStructureValidator.java index a5b7daa..2768551 100644 --- a/src/main/java/de/gecheckt/asv/validation/structure/DefaultStructureValidator.java +++ b/src/main/java/de/gecheckt/asv/application/structure/DefaultStructureValidator.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.validation.structure; +package de.gecheckt.asv.application.structure; import java.util.ArrayList; import java.util.HashSet; @@ -8,9 +8,9 @@ import de.gecheckt.asv.domain.model.Field; import de.gecheckt.asv.domain.model.InputFile; import de.gecheckt.asv.domain.model.Message; import de.gecheckt.asv.domain.model.Segment; -import de.gecheckt.asv.validation.model.ValidationError; -import de.gecheckt.asv.validation.model.ValidationResult; -import de.gecheckt.asv.validation.model.ValidationSeverity; +import de.gecheckt.asv.application.model.ValidationError; +import de.gecheckt.asv.application.model.ValidationResult; +import de.gecheckt.asv.application.model.ValidationSeverity; /** * Standardimplementierung des StructureValidator, die allgemeine Strukturregeln prüft. diff --git a/src/main/java/de/gecheckt/asv/validation/structure/StructureValidator.java b/src/main/java/de/gecheckt/asv/application/structure/StructureValidator.java similarity index 86% rename from src/main/java/de/gecheckt/asv/validation/structure/StructureValidator.java rename to src/main/java/de/gecheckt/asv/application/structure/StructureValidator.java index d205bbd..5c6d6e2 100644 --- a/src/main/java/de/gecheckt/asv/validation/structure/StructureValidator.java +++ b/src/main/java/de/gecheckt/asv/application/structure/StructureValidator.java @@ -1,7 +1,7 @@ -package de.gecheckt.asv.validation.structure; +package de.gecheckt.asv.application.structure; import de.gecheckt.asv.domain.model.InputFile; -import de.gecheckt.asv.validation.model.ValidationResult; +import de.gecheckt.asv.application.model.ValidationResult; /** * Interface für die Validierung der strukturellen Integrität einer ASV-Eingabedatei. diff --git a/src/main/java/de/gecheckt/asv/bootstrap/package-info.java b/src/main/java/de/gecheckt/asv/bootstrap/package-info.java new file mode 100644 index 0000000..045e7e9 --- /dev/null +++ b/src/main/java/de/gecheckt/asv/bootstrap/package-info.java @@ -0,0 +1,8 @@ +/** + * Bootstrap-Paket des ASV-Format-Validators. + * Verantwortlich für die manuelle Constructor Injection aller Komponenten + * sowie die Initialisierung der Infrastruktur (Logging, Encoding). + * Darf als einziges Paket neben {@code adapter.out.logging} Log4j2-Typen direkt verwenden. + * Wird ab AP06 mit der Bootstrap-Klasse befüllt. + */ +package de.gecheckt.asv.bootstrap; diff --git a/src/main/java/de/gecheckt/asv/domain/package-info.java b/src/main/java/de/gecheckt/asv/domain/package-info.java new file mode 100644 index 0000000..661a163 --- /dev/null +++ b/src/main/java/de/gecheckt/asv/domain/package-info.java @@ -0,0 +1,7 @@ +/** + * Fachliches Kernmodell des ASV-Format-Validators. + * Enthält die unveränderlichen Domänenobjekte (Records) der ASV-Dateistruktur: + * {@code InputFile}, {@code Message}, {@code Segment} und {@code Field}. + * Diese Klassen sind frei von Infrastruktur- und Framework-Abhängigkeiten. + */ +package de.gecheckt.asv.domain; diff --git a/src/test/java/de/gecheckt/asv/cli/AsvValidatorApplicationAdditionalTest.java b/src/test/java/de/gecheckt/asv/adapter/in/cli/AsvValidatorApplicationAdditionalTest.java similarity index 94% rename from src/test/java/de/gecheckt/asv/cli/AsvValidatorApplicationAdditionalTest.java rename to src/test/java/de/gecheckt/asv/adapter/in/cli/AsvValidatorApplicationAdditionalTest.java index ff9662f..0432638 100644 --- a/src/test/java/de/gecheckt/asv/cli/AsvValidatorApplicationAdditionalTest.java +++ b/src/test/java/de/gecheckt/asv/adapter/in/cli/AsvValidatorApplicationAdditionalTest.java @@ -1,15 +1,16 @@ -package de.gecheckt.asv.cli; +package de.gecheckt.asv.adapter.in.cli; import de.gecheckt.asv.domain.model.Field; import de.gecheckt.asv.domain.model.InputFile; import de.gecheckt.asv.domain.model.Message; import de.gecheckt.asv.domain.model.Segment; -import de.gecheckt.asv.parser.InputFileParseException; -import de.gecheckt.asv.parser.InputFileParser; -import de.gecheckt.asv.validation.InputFileValidator; -import de.gecheckt.asv.validation.model.ValidationError; -import de.gecheckt.asv.validation.model.ValidationResult; -import de.gecheckt.asv.validation.model.ValidationSeverity; +import de.gecheckt.asv.adapter.out.parsing.InputFileParseException; +import de.gecheckt.asv.adapter.out.parsing.InputFileParser; +import de.gecheckt.asv.application.InputFileValidator; +import de.gecheckt.asv.application.model.ValidationError; +import de.gecheckt.asv.application.model.ValidationResult; +import de.gecheckt.asv.application.model.ValidationSeverity; +import de.gecheckt.asv.adapter.out.reporting.ValidationResultPrinter; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; diff --git a/src/test/java/de/gecheckt/asv/cli/AsvValidatorApplicationTest.java b/src/test/java/de/gecheckt/asv/adapter/in/cli/AsvValidatorApplicationTest.java similarity index 94% rename from src/test/java/de/gecheckt/asv/cli/AsvValidatorApplicationTest.java rename to src/test/java/de/gecheckt/asv/adapter/in/cli/AsvValidatorApplicationTest.java index fefc1b1..ac2b724 100644 --- a/src/test/java/de/gecheckt/asv/cli/AsvValidatorApplicationTest.java +++ b/src/test/java/de/gecheckt/asv/adapter/in/cli/AsvValidatorApplicationTest.java @@ -1,7 +1,8 @@ -package de.gecheckt.asv.cli; +package de.gecheckt.asv.adapter.in.cli; -import de.gecheckt.asv.parser.InputFileParser; -import de.gecheckt.asv.validation.InputFileValidator; +import de.gecheckt.asv.adapter.out.parsing.InputFileParser; +import de.gecheckt.asv.application.InputFileValidator; +import de.gecheckt.asv.adapter.out.reporting.ValidationResultPrinter; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; diff --git a/src/test/java/de/gecheckt/asv/parser/DefaultInputFileParserTest.java b/src/test/java/de/gecheckt/asv/adapter/out/parsing/DefaultInputFileParserTest.java similarity index 99% rename from src/test/java/de/gecheckt/asv/parser/DefaultInputFileParserTest.java rename to src/test/java/de/gecheckt/asv/adapter/out/parsing/DefaultInputFileParserTest.java index d86498d..4dcf2e9 100644 --- a/src/test/java/de/gecheckt/asv/parser/DefaultInputFileParserTest.java +++ b/src/test/java/de/gecheckt/asv/adapter/out/parsing/DefaultInputFileParserTest.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.parser; +package de.gecheckt.asv.adapter.out.parsing; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; diff --git a/src/test/java/de/gecheckt/asv/parser/DefaultSegmentLineTokenizerTest.java b/src/test/java/de/gecheckt/asv/adapter/out/parsing/DefaultSegmentLineTokenizerTest.java similarity index 98% rename from src/test/java/de/gecheckt/asv/parser/DefaultSegmentLineTokenizerTest.java rename to src/test/java/de/gecheckt/asv/adapter/out/parsing/DefaultSegmentLineTokenizerTest.java index 9e7decf..8c082bc 100644 --- a/src/test/java/de/gecheckt/asv/parser/DefaultSegmentLineTokenizerTest.java +++ b/src/test/java/de/gecheckt/asv/adapter/out/parsing/DefaultSegmentLineTokenizerTest.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.parser; +package de.gecheckt.asv.adapter.out.parsing; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; diff --git a/src/test/java/de/gecheckt/asv/cli/ValidationResultPrinterTest.java b/src/test/java/de/gecheckt/asv/adapter/out/reporting/ValidationResultPrinterTest.java similarity index 91% rename from src/test/java/de/gecheckt/asv/cli/ValidationResultPrinterTest.java rename to src/test/java/de/gecheckt/asv/adapter/out/reporting/ValidationResultPrinterTest.java index ed1834d..8bdb2c2 100644 --- a/src/test/java/de/gecheckt/asv/cli/ValidationResultPrinterTest.java +++ b/src/test/java/de/gecheckt/asv/adapter/out/reporting/ValidationResultPrinterTest.java @@ -1,8 +1,8 @@ -package de.gecheckt.asv.cli; +package de.gecheckt.asv.adapter.out.reporting; -import de.gecheckt.asv.validation.model.ValidationError; -import de.gecheckt.asv.validation.model.ValidationResult; -import de.gecheckt.asv.validation.model.ValidationSeverity; +import de.gecheckt.asv.application.model.ValidationError; +import de.gecheckt.asv.application.model.ValidationResult; +import de.gecheckt.asv.application.model.ValidationSeverity; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/src/test/java/de/gecheckt/asv/validation/DefaultInputFileValidatorTest.java b/src/test/java/de/gecheckt/asv/application/DefaultInputFileValidatorTest.java similarity index 92% rename from src/test/java/de/gecheckt/asv/validation/DefaultInputFileValidatorTest.java rename to src/test/java/de/gecheckt/asv/application/DefaultInputFileValidatorTest.java index d736e03..6b74ac0 100644 --- a/src/test/java/de/gecheckt/asv/validation/DefaultInputFileValidatorTest.java +++ b/src/test/java/de/gecheckt/asv/application/DefaultInputFileValidatorTest.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.validation; +package de.gecheckt.asv.application; import static org.junit.jupiter.api.Assertions.*; @@ -8,11 +8,11 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import de.gecheckt.asv.domain.model.InputFile; -import de.gecheckt.asv.validation.field.FieldValidator; -import de.gecheckt.asv.validation.model.ValidationError; -import de.gecheckt.asv.validation.model.ValidationResult; -import de.gecheckt.asv.validation.model.ValidationSeverity; -import de.gecheckt.asv.validation.structure.StructureValidator; +import de.gecheckt.asv.application.field.FieldValidator; +import de.gecheckt.asv.application.model.ValidationError; +import de.gecheckt.asv.application.model.ValidationResult; +import de.gecheckt.asv.application.model.ValidationSeverity; +import de.gecheckt.asv.application.structure.StructureValidator; class DefaultInputFileValidatorTest { diff --git a/src/test/java/de/gecheckt/asv/validation/field/DefaultFieldValidatorTest.java b/src/test/java/de/gecheckt/asv/application/field/DefaultFieldValidatorTest.java similarity index 97% rename from src/test/java/de/gecheckt/asv/validation/field/DefaultFieldValidatorTest.java rename to src/test/java/de/gecheckt/asv/application/field/DefaultFieldValidatorTest.java index bec395b..fe5a4ea 100644 --- a/src/test/java/de/gecheckt/asv/validation/field/DefaultFieldValidatorTest.java +++ b/src/test/java/de/gecheckt/asv/application/field/DefaultFieldValidatorTest.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.validation.field; +package de.gecheckt.asv.application.field; import static org.junit.jupiter.api.Assertions.*; @@ -11,9 +11,9 @@ import de.gecheckt.asv.domain.model.Field; import de.gecheckt.asv.domain.model.InputFile; import de.gecheckt.asv.domain.model.Message; import de.gecheckt.asv.domain.model.Segment; -import de.gecheckt.asv.validation.model.ValidationError; -import de.gecheckt.asv.validation.model.ValidationResult; -import de.gecheckt.asv.validation.model.ValidationSeverity; +import de.gecheckt.asv.application.model.ValidationError; +import de.gecheckt.asv.application.model.ValidationResult; +import de.gecheckt.asv.application.model.ValidationSeverity; class DefaultFieldValidatorTest { diff --git a/src/test/java/de/gecheckt/asv/validation/model/ValidationErrorTest.java b/src/test/java/de/gecheckt/asv/application/model/ValidationErrorTest.java similarity index 98% rename from src/test/java/de/gecheckt/asv/validation/model/ValidationErrorTest.java rename to src/test/java/de/gecheckt/asv/application/model/ValidationErrorTest.java index cbfc5e8..a5715e6 100644 --- a/src/test/java/de/gecheckt/asv/validation/model/ValidationErrorTest.java +++ b/src/test/java/de/gecheckt/asv/application/model/ValidationErrorTest.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.validation.model; +package de.gecheckt.asv.application.model; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/de/gecheckt/asv/validation/model/ValidationResultTest.java b/src/test/java/de/gecheckt/asv/application/model/ValidationResultTest.java similarity index 96% rename from src/test/java/de/gecheckt/asv/validation/model/ValidationResultTest.java rename to src/test/java/de/gecheckt/asv/application/model/ValidationResultTest.java index b651e05..5fe1bbc 100644 --- a/src/test/java/de/gecheckt/asv/validation/model/ValidationResultTest.java +++ b/src/test/java/de/gecheckt/asv/application/model/ValidationResultTest.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.validation.model; +package de.gecheckt.asv.application.model; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvfehFhlSegmentTest.java b/src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvfehFhlSegmentTest.java similarity index 98% rename from src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvfehFhlSegmentTest.java rename to src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvfehFhlSegmentTest.java index 874c30d..da05624 100644 --- a/src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvfehFhlSegmentTest.java +++ b/src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvfehFhlSegmentTest.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.validation.structure; +package de.gecheckt.asv.application.structure; import static org.junit.jupiter.api.Assertions.*; @@ -12,8 +12,8 @@ import de.gecheckt.asv.domain.model.Field; import de.gecheckt.asv.domain.model.InputFile; import de.gecheckt.asv.domain.model.Message; import de.gecheckt.asv.domain.model.Segment; -import de.gecheckt.asv.validation.model.ValidationError; -import de.gecheckt.asv.validation.model.ValidationResult; +import de.gecheckt.asv.application.model.ValidationError; +import de.gecheckt.asv.application.model.ValidationResult; /** * Testfälle für die Validierung der Mindestpräsenz des FHL-Segments in ASVFEH-Nachrichten. diff --git a/src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvrecRechnungsbetragTest.java b/src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvrecRechnungsbetragTest.java similarity index 98% rename from src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvrecRechnungsbetragTest.java rename to src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvrecRechnungsbetragTest.java index 978d6ce..b804e37 100644 --- a/src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvrecRechnungsbetragTest.java +++ b/src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvrecRechnungsbetragTest.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.validation.structure; +package de.gecheckt.asv.application.structure; import static org.junit.jupiter.api.Assertions.*; @@ -12,8 +12,8 @@ import de.gecheckt.asv.domain.model.Field; import de.gecheckt.asv.domain.model.InputFile; import de.gecheckt.asv.domain.model.Message; import de.gecheckt.asv.domain.model.Segment; -import de.gecheckt.asv.validation.model.ValidationError; -import de.gecheckt.asv.validation.model.ValidationResult; +import de.gecheckt.asv.application.model.ValidationError; +import de.gecheckt.asv.application.model.ValidationResult; /** * Tests für die Rechnungsbetrag-Regel bei ASVREC mit Rechnungskennzeichen "1": diff --git a/src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvrecRechnungskennzeichenTest.java b/src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvrecRechnungskennzeichenTest.java similarity index 98% rename from src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvrecRechnungskennzeichenTest.java rename to src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvrecRechnungskennzeichenTest.java index 5ed0429..1dd91ae 100644 --- a/src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvrecRechnungskennzeichenTest.java +++ b/src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvrecRechnungskennzeichenTest.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.validation.structure; +package de.gecheckt.asv.application.structure; import static org.junit.jupiter.api.Assertions.*; @@ -11,8 +11,8 @@ import de.gecheckt.asv.domain.model.Field; import de.gecheckt.asv.domain.model.InputFile; import de.gecheckt.asv.domain.model.Message; import de.gecheckt.asv.domain.model.Segment; -import de.gecheckt.asv.validation.model.ValidationError; -import de.gecheckt.asv.validation.model.ValidationResult; +import de.gecheckt.asv.application.model.ValidationError; +import de.gecheckt.asv.application.model.ValidationResult; /** * Tests für die Rechnungskennzeichen-Regel in ASVREC-Nachrichten: diff --git a/src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvrecSegmentCardinalityTest.java b/src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvrecSegmentCardinalityTest.java similarity index 98% rename from src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvrecSegmentCardinalityTest.java rename to src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvrecSegmentCardinalityTest.java index b998207..a165281 100644 --- a/src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvrecSegmentCardinalityTest.java +++ b/src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvrecSegmentCardinalityTest.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.validation.structure; +package de.gecheckt.asv.application.structure; import static org.junit.jupiter.api.Assertions.*; @@ -12,8 +12,8 @@ import de.gecheckt.asv.domain.model.Field; import de.gecheckt.asv.domain.model.InputFile; import de.gecheckt.asv.domain.model.Message; import de.gecheckt.asv.domain.model.Segment; -import de.gecheckt.asv.validation.model.ValidationError; -import de.gecheckt.asv.validation.model.ValidationResult; +import de.gecheckt.asv.application.model.ValidationError; +import de.gecheckt.asv.application.model.ValidationResult; /** * Tests für die Kardinalitätsregel in ASVREC-Nachrichten: diff --git a/src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvrecSegmentOrderTest.java b/src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvrecSegmentOrderTest.java similarity index 97% rename from src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvrecSegmentOrderTest.java rename to src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvrecSegmentOrderTest.java index e9af190..d806c05 100644 --- a/src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvrecSegmentOrderTest.java +++ b/src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvrecSegmentOrderTest.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.validation.structure; +package de.gecheckt.asv.application.structure; import static org.junit.jupiter.api.Assertions.*; @@ -11,8 +11,8 @@ import de.gecheckt.asv.domain.model.Field; import de.gecheckt.asv.domain.model.InputFile; import de.gecheckt.asv.domain.model.Message; import de.gecheckt.asv.domain.model.Segment; -import de.gecheckt.asv.validation.model.ValidationError; -import de.gecheckt.asv.validation.model.ValidationResult; +import de.gecheckt.asv.application.model.ValidationError; +import de.gecheckt.asv.application.model.ValidationResult; /** * Tests für die Reihenfolgeregel der Pflichtsegmente in ASVREC-Nachrichten: diff --git a/src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvrecSegmentsTest.java b/src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvrecSegmentsTest.java similarity index 98% rename from src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvrecSegmentsTest.java rename to src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvrecSegmentsTest.java index 2b01fba..7f02661 100644 --- a/src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorAsvrecSegmentsTest.java +++ b/src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorAsvrecSegmentsTest.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.validation.structure; +package de.gecheckt.asv.application.structure; import static org.junit.jupiter.api.Assertions.*; @@ -11,8 +11,8 @@ import de.gecheckt.asv.domain.model.Field; import de.gecheckt.asv.domain.model.InputFile; import de.gecheckt.asv.domain.model.Message; import de.gecheckt.asv.domain.model.Segment; -import de.gecheckt.asv.validation.model.ValidationError; -import de.gecheckt.asv.validation.model.ValidationResult; +import de.gecheckt.asv.application.model.ValidationError; +import de.gecheckt.asv.application.model.ValidationResult; class DefaultStructureValidatorAsvrecSegmentsTest { diff --git a/src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorTest.java b/src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorTest.java similarity index 98% rename from src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorTest.java rename to src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorTest.java index d488594..5a4a8ec 100644 --- a/src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorTest.java +++ b/src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorTest.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.validation.structure; +package de.gecheckt.asv.application.structure; import static org.junit.jupiter.api.Assertions.*; @@ -15,12 +15,12 @@ import de.gecheckt.asv.domain.model.Field; import de.gecheckt.asv.domain.model.InputFile; import de.gecheckt.asv.domain.model.Message; import de.gecheckt.asv.domain.model.Segment; -import de.gecheckt.asv.parser.DefaultInputFileParser; -import de.gecheckt.asv.parser.DefaultSegmentLineTokenizer; -import de.gecheckt.asv.parser.InputFileParseException; -import de.gecheckt.asv.parser.SegmentLineTokenizer; -import de.gecheckt.asv.validation.model.ValidationError; -import de.gecheckt.asv.validation.model.ValidationResult; +import de.gecheckt.asv.adapter.out.parsing.DefaultInputFileParser; +import de.gecheckt.asv.adapter.out.parsing.DefaultSegmentLineTokenizer; +import de.gecheckt.asv.adapter.out.parsing.InputFileParseException; +import de.gecheckt.asv.adapter.out.parsing.SegmentLineTokenizer; +import de.gecheckt.asv.application.model.ValidationError; +import de.gecheckt.asv.application.model.ValidationResult; class DefaultStructureValidatorTest { diff --git a/src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorTestAdditional.java b/src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorTestAdditional.java similarity index 92% rename from src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorTestAdditional.java rename to src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorTestAdditional.java index 4730539..3bc4760 100644 --- a/src/test/java/de/gecheckt/asv/validation/structure/DefaultStructureValidatorTestAdditional.java +++ b/src/test/java/de/gecheckt/asv/application/structure/DefaultStructureValidatorTestAdditional.java @@ -1,4 +1,4 @@ -package de.gecheckt.asv.validation.structure; +package de.gecheckt.asv.application.structure; import static org.junit.jupiter.api.Assertions.*; @@ -14,12 +14,12 @@ import de.gecheckt.asv.domain.model.Field; import de.gecheckt.asv.domain.model.InputFile; import de.gecheckt.asv.domain.model.Message; import de.gecheckt.asv.domain.model.Segment; -import de.gecheckt.asv.parser.DefaultInputFileParser; -import de.gecheckt.asv.parser.DefaultSegmentLineTokenizer; -import de.gecheckt.asv.parser.InputFileParseException; -import de.gecheckt.asv.parser.SegmentLineTokenizer; -import de.gecheckt.asv.validation.model.ValidationError; -import de.gecheckt.asv.validation.model.ValidationResult; +import de.gecheckt.asv.adapter.out.parsing.DefaultInputFileParser; +import de.gecheckt.asv.adapter.out.parsing.DefaultSegmentLineTokenizer; +import de.gecheckt.asv.adapter.out.parsing.InputFileParseException; +import de.gecheckt.asv.adapter.out.parsing.SegmentLineTokenizer; +import de.gecheckt.asv.application.model.ValidationError; +import de.gecheckt.asv.application.model.ValidationResult; class DefaultStructureValidatorTestAdditional {