From 4aee1df0f99f4cf0aa1682959690612ea46954ab Mon Sep 17 00:00:00 2001 From: Steven KERDUDOU Date: Mon, 22 Jan 2024 18:22:16 +0100 Subject: [PATCH 1/3] [Tests] Use lambda --- .../core/locale/LocaleManagerTest.java | 40 ++++--------------- 1 file changed, 8 insertions(+), 32 deletions(-) diff --git a/vertigo-core/src/test/java/io/vertigo/core/locale/LocaleManagerTest.java b/vertigo-core/src/test/java/io/vertigo/core/locale/LocaleManagerTest.java index 147d94437..058a9cde6 100644 --- a/vertigo-core/src/test/java/io/vertigo/core/locale/LocaleManagerTest.java +++ b/vertigo-core/src/test/java/io/vertigo/core/locale/LocaleManagerTest.java @@ -119,14 +119,8 @@ public void testDynamicMessageKey() { /* * On teste que l'on accède au dictionnaire par une clé sous forme de chaine de caractères. */ - final LocaleMessageKey key = new LocaleMessageKey() { - private static final long serialVersionUID = 1L; - - @Override - public String name() { - return "HELLO"; - } - }; + final LocaleMessageKey key = () -> "HELLO"; + assertEquals("bonjour", localeManager.getMessage(key, Locale.FRANCE)); assertEquals("guten tag", localeManager.getMessage(key, Locale.GERMANY)); assertEquals("hello", localeManager.getMessage(key, Locale.ENGLISH)); @@ -134,42 +128,24 @@ public String name() { @Test public void testDefaultDynamicMessageKey() { - final LocaleMessageKey key = new LocaleMessageKey() { - private static final long serialVersionUID = 1L; - - @Override - public String name() { - return "UNKNOWN KEY"; - } - }; + final LocaleMessageKey key = () -> "UNKNOWN KEY"; + final LocaleMessageText helloTxt = LocaleMessageText.ofDefaultMsg("bonjour par défaut", key); assertEquals("bonjour par défaut", helloTxt.getDisplay()); } @Test public void testUnknownDynamicMessageKey() { - final LocaleMessageKey key = new LocaleMessageKey() { - private static final long serialVersionUID = 1L; - - @Override - public String name() { - return "UNKNOWN KEY"; - } - }; + final LocaleMessageKey key = () -> "UNKNOWN KEY"; + final LocaleMessageText helloTxt = LocaleMessageText.of(key); assertEquals("<>", helloTxt.getDisplay()); } @Test public void testMessageTextParams() { - final LocaleMessageKey key = new LocaleMessageKey() { - private static final long serialVersionUID = 1L; - - @Override - public String name() { - return "UNKNOWN KEY"; - } - }; + final LocaleMessageKey key = () -> "UNKNOWN KEY"; + final Serializable param = null; LocaleMessageText helloTxt = LocaleMessageText.of(key); assertEquals("<>", helloTxt.getDisplay()); From 33b1a76056616192831e147956aed1f47ee9086c Mon Sep 17 00:00:00 2001 From: Steven KERDUDOU Date: Mon, 22 Jan 2024 18:22:53 +0100 Subject: [PATCH 2/3] [core] Add SimpleEnumDefinitionProvider --- .../SimpleEnumDefinitionProvider.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 vertigo-core/src/main/java/io/vertigo/core/node/definition/SimpleEnumDefinitionProvider.java diff --git a/vertigo-core/src/main/java/io/vertigo/core/node/definition/SimpleEnumDefinitionProvider.java b/vertigo-core/src/main/java/io/vertigo/core/node/definition/SimpleEnumDefinitionProvider.java new file mode 100644 index 000000000..e19154050 --- /dev/null +++ b/vertigo-core/src/main/java/io/vertigo/core/node/definition/SimpleEnumDefinitionProvider.java @@ -0,0 +1,37 @@ +package io.vertigo.core.node.definition; + +import java.util.Arrays; +import java.util.List; + +/** + * Provides a list of definitions through an enum. + * + * @author skerdudou + */ +public interface SimpleEnumDefinitionProvider extends DefinitionProvider { + + /** + * Return a list of definitions with a set of already known definitions + * + * @param definitionSpace the actual definitionSpace + * @return the list of new definition to register + */ + @Override + default List get(final DefinitionSpace definitionSpace) { + final var enumValues = getEnumClass().getEnumConstants(); + + return Arrays.stream(enumValues) + .map(v -> (DefinitionSupplier) v::buildDefinition) + .toList(); + } + + Class>> getEnumClass(); + + static interface EnumDefinition> { + + D buildDefinition(DefinitionSpace definitionSpace); + + D get(); + + } +} From 4d087f23d734775657ecc4a70c93d45cf0beba51 Mon Sep 17 00:00:00 2001 From: Steven KERDUDOU Date: Fri, 26 Jan 2024 17:46:21 +0100 Subject: [PATCH 3/3] [core] Add SimpleEnumDefinitionProvider --- .../core/node/definition/SimpleEnumDefinitionProvider.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vertigo-core/src/main/java/io/vertigo/core/node/definition/SimpleEnumDefinitionProvider.java b/vertigo-core/src/main/java/io/vertigo/core/node/definition/SimpleEnumDefinitionProvider.java index e19154050..63eb7ae6f 100644 --- a/vertigo-core/src/main/java/io/vertigo/core/node/definition/SimpleEnumDefinitionProvider.java +++ b/vertigo-core/src/main/java/io/vertigo/core/node/definition/SimpleEnumDefinitionProvider.java @@ -29,6 +29,8 @@ default List get(final DefinitionSpace definitionSpace) { static interface EnumDefinition> { + String getDefinitionName(); + D buildDefinition(DefinitionSpace definitionSpace); D get();