From 4348ad15422e7a5ae31f9f4031b22e3a0eb3e5f3 Mon Sep 17 00:00:00 2001 From: Philip Helger Date: Mon, 4 Nov 2024 17:01:20 +0100 Subject: [PATCH] Added getAsCharArrayOrFallback --- .../config/fallback/ConfigWithFallback.java | 21 +++++++++++++++++++ .../config/fallback/IConfigWithFallback.java | 16 ++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/ph-config/src/main/java/com/helger/config/fallback/ConfigWithFallback.java b/ph-config/src/main/java/com/helger/config/fallback/ConfigWithFallback.java index d57876f2e..1ef3fe86d 100644 --- a/ph-config/src/main/java/com/helger/config/fallback/ConfigWithFallback.java +++ b/ph-config/src/main/java/com/helger/config/fallback/ConfigWithFallback.java @@ -128,6 +128,27 @@ public String getAsStringOrFallback (@Nonnull final String sPrimary, @Nonnull fi return ret; } + @Nullable + public char [] getAsCharArrayOrFallback (@Nonnull final String sPrimary, @Nonnull final String... aOldOnes) + { + char [] ret = getAsCharArray (sPrimary); + if (ret != null) + { + // Try the old names + for (final String sOld : aOldOnes) + { + ret = getAsCharArray (sOld); + if (ret != null) + { + // Notify on old name usage + m_aOutdatedNotifier.onOutdatedConfigurationKey (sOld, sPrimary); + break; + } + } + } + return ret; + } + @Nullable public BigDecimal getAsBigDecimalOrFallback (@Nonnull final String sPrimary, @Nonnull final String... aOldOnes) { diff --git a/ph-config/src/main/java/com/helger/config/fallback/IConfigWithFallback.java b/ph-config/src/main/java/com/helger/config/fallback/IConfigWithFallback.java index 4410c961c..e87ab1f21 100644 --- a/ph-config/src/main/java/com/helger/config/fallback/IConfigWithFallback.java +++ b/ph-config/src/main/java/com/helger/config/fallback/IConfigWithFallback.java @@ -65,6 +65,22 @@ public interface IConfigWithFallback extends IConfig @Nullable String getAsStringOrFallback (@Nonnull String sPrimary, @Nonnull @Nonempty String... aOldOnes); + /** + * Get the configuration value as a char array based on the primary or the + * alternative keys. + * + * @param sPrimary + * Primary configuration key. Should not be null. + * @param aOldOnes + * The alternative keys to be resolved in the provided order. May + * neither be null nor empty. + * @return null if neither the primary nor the old configuration + * property keys could be resolved. + * @since 11.1.10 + */ + @Nullable + char [] getAsCharArrayOrFallback (@Nonnull String sPrimary, @Nonnull @Nonempty String... aOldOnes); + /** * Get the configuration value as a BigDecimal based on the primary or the * alternative keys.