From b4c452afb3037c674055c486ddf1bd5bd91efaf1 Mon Sep 17 00:00:00 2001 From: David Waltermire Date: Mon, 27 May 2024 12:19:45 -0400 Subject: [PATCH] Differentiate between default and other recognized extensions --- .../metaschema/databind/io/Format.java | 36 ++++++++++++++----- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/Format.java b/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/Format.java index ec3d67b4b..9a2f06fca 100644 --- a/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/Format.java +++ b/databind/src/main/java/gov/nist/secauto/metaschema/databind/io/Format.java @@ -27,9 +27,9 @@ package gov.nist.secauto.metaschema.databind.io; import gov.nist.secauto.metaschema.core.util.CollectionUtil; -import gov.nist.secauto.metaschema.core.util.ObjectUtils; import java.util.Arrays; +import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Set; @@ -45,20 +45,22 @@ public enum Format { /** * The Extensible Markup Language format. */ - XML(Set.of(".xml")), + XML(".xml", Set.of()), /** * The JavaScript Object Notation format. */ - JSON(Set.of(".json")), + JSON(".json", Set.of()), /** * The YAML Ain't Markup Language format. */ - YAML(Set.of(".yml", ".yaml")); + YAML(".yaml", Set.of(".yml")); private static final List NAMES; @NonNull - private final Set defaultExtensions; + private final String defaultExtension; + @NonNull + private final Set recognizedExtensions; static { NAMES = Arrays.stream(values()) @@ -76,8 +78,24 @@ public static List names() { return NAMES; } - Format(Set defaultExtensions) { - this.defaultExtensions = CollectionUtil.unmodifiableSet(ObjectUtils.requireNonNull(defaultExtensions)); + Format(@NonNull String defaultExtension, Set otherExtensions) { + this.defaultExtension = defaultExtension; + + Set recognizedExtensions = new HashSet<>(); + recognizedExtensions.add(defaultExtension); + recognizedExtensions.addAll(otherExtensions); + + this.recognizedExtensions = CollectionUtil.unmodifiableSet(recognizedExtensions); + } + + /** + * Get the default extension to use for the format. + * + * @return the default extension + */ + @NonNull + public Set getRecognizedExtensions() { + return recognizedExtensions; } /** @@ -86,7 +104,7 @@ public static List names() { * @return the default extension */ @NonNull - public Set getDefaultExtension() { - return defaultExtensions; + public String getDefaultExtension() { + return defaultExtension; } }