Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/vertigo-io/vertigo-core
Browse files Browse the repository at this point in the history
…into develop
  • Loading branch information
phlppchrtn committed Jan 30, 2024
2 parents 054a653 + 4d087f2 commit c2a06bd
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 32 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
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<D extends Definition> 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<DefinitionSupplier> get(final DefinitionSpace definitionSpace) {
final var enumValues = getEnumClass().getEnumConstants();

return Arrays.stream(enumValues)
.map(v -> (DefinitionSupplier) v::buildDefinition)
.toList();
}

Class<? extends EnumDefinition<D, ? extends Enum<?>>> getEnumClass();

static interface EnumDefinition<D, T extends Enum<T>> {

String getDefinitionName();

D buildDefinition(DefinitionSpace definitionSpace);

D get();

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -119,57 +119,33 @@ 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));
}

@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("<<fr:UNKNOWN KEY>>", 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("<<fr:UNKNOWN KEY>>", helloTxt.getDisplay());
Expand Down

0 comments on commit c2a06bd

Please sign in to comment.