From a88824ea4369da6320557b65cc8edb727c5d6e05 Mon Sep 17 00:00:00 2001 From: Ben H <133617495+bennavapbc@users.noreply.github.com> Date: Mon, 13 Jan 2025 16:45:59 -0700 Subject: [PATCH] Add new FileOutputTypes for file compression; bump aggregator version (#420) --- .../gov/cms/ab2d/aggregator/FileOutputType.java | 15 ++++++++------- .../cms/ab2d/aggregator/FileOutputTypeTest.java | 10 ++++++++++ build.gradle | 2 +- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/ab2d-aggregator/src/main/java/gov/cms/ab2d/aggregator/FileOutputType.java b/ab2d-aggregator/src/main/java/gov/cms/ab2d/aggregator/FileOutputType.java index 0f321846..d253e183 100644 --- a/ab2d-aggregator/src/main/java/gov/cms/ab2d/aggregator/FileOutputType.java +++ b/ab2d-aggregator/src/main/java/gov/cms/ab2d/aggregator/FileOutputType.java @@ -1,13 +1,16 @@ package gov.cms.ab2d.aggregator; import java.io.File; +import java.util.stream.Stream; /** * Taken from AB2D. Describes the different file endings for the data and error files created by the aggregator */ public enum FileOutputType { DATA(".ndjson"), + DATA_COMPRESSED(".ndjson.gz"), ERROR("_error.ndjson"), + ERROR_COMPRESSED("_error.ndjson.gz"), UNKNOWN(""); private final String suffix; @@ -28,12 +31,10 @@ public static FileOutputType getFileType(String file) { if (file == null) { return UNKNOWN; } - if (file.endsWith(DATA.getSuffix())) { - if (file.endsWith(ERROR.getSuffix())) { - return ERROR; - } - return DATA; - } - return UNKNOWN; + + return Stream.of(ERROR, ERROR_COMPRESSED, DATA, DATA_COMPRESSED) + .filter(type -> file.endsWith(type.suffix)) + .findFirst() + .orElse(UNKNOWN); } } \ No newline at end of file diff --git a/ab2d-aggregator/src/test/java/gov/cms/ab2d/aggregator/FileOutputTypeTest.java b/ab2d-aggregator/src/test/java/gov/cms/ab2d/aggregator/FileOutputTypeTest.java index d54a8aaf..dd46176d 100644 --- a/ab2d-aggregator/src/test/java/gov/cms/ab2d/aggregator/FileOutputTypeTest.java +++ b/ab2d-aggregator/src/test/java/gov/cms/ab2d/aggregator/FileOutputTypeTest.java @@ -3,7 +3,9 @@ import org.junit.jupiter.api.Test; import static gov.cms.ab2d.aggregator.FileOutputType.DATA; +import static gov.cms.ab2d.aggregator.FileOutputType.DATA_COMPRESSED; import static gov.cms.ab2d.aggregator.FileOutputType.ERROR; +import static gov.cms.ab2d.aggregator.FileOutputType.ERROR_COMPRESSED; import static gov.cms.ab2d.aggregator.FileOutputType.UNKNOWN; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -15,8 +17,12 @@ class FileOutputTypeTest { void isErrorFile() { String file1 = "abc." + ERROR.getSuffix(); String file2 = "abc." + DATA.getSuffix(); + String file3 = "abc." + ERROR_COMPRESSED.getSuffix(); + String file4 = "abc." + DATA_COMPRESSED.getSuffix(); assertEquals(ERROR, FileOutputType.getFileType(file1)); assertEquals(DATA, FileOutputType.getFileType(file2)); + assertEquals(ERROR_COMPRESSED, FileOutputType.getFileType(file3)); + assertEquals(DATA_COMPRESSED, FileOutputType.getFileType(file4)); assertEquals(UNKNOWN, FileOutputType.getFileType("bogus.txt")); assertEquals(UNKNOWN, FileOutputType.getFileType((String) null)); } @@ -25,7 +31,11 @@ void isErrorFile() { void testActualFile() { File file1 = new File("abc." + ERROR.getSuffix()); File file2 = new File("abc." + DATA.getSuffix()); + File file3 = new File("abc." + ERROR_COMPRESSED.getSuffix()); + File file4 = new File("abc." + DATA_COMPRESSED.getSuffix()); assertEquals(ERROR, FileOutputType.getFileType(file1)); assertEquals(DATA, FileOutputType.getFileType(file2)); + assertEquals(ERROR_COMPRESSED, FileOutputType.getFileType(file3)); + assertEquals(DATA_COMPRESSED, FileOutputType.getFileType(file4)); } } diff --git a/build.gradle b/build.gradle index b203bf5f..5ce87960 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ ext { // AB2D libraries fhirVersion='2.1.0' bfdVersion='3.2.0' - aggregatorVersion='2.0.0' + aggregatorVersion='2.0.1' filtersVersion='2.1.0' eventClientVersion='3.2.1' propertiesClientVersion='2.0.0'