diff --git a/documentation/reference/pt-BR/configuracao.xml b/documentation/reference/pt-BR/configuracao.xml index 0eb989b..056eef8 100644 --- a/documentation/reference/pt-BR/configuracao.xml +++ b/documentation/reference/pt-BR/configuracao.xml @@ -160,15 +160,15 @@ public class BookmarkConfig {
Especificando os parâmetros - Atualmente são suportados nativamente pelo Demoiselle Framework parâmetros de cinco tipos - diferentes, são eles: primitivo, wrapped, String, - class, map e array, sendo que os três últimos - são suportados a partir da versão 2.4.0. A seguir vamos explicar e exemplificar como utilizar cada um desses + Atualmente são suportados nativamente pelo Demoiselle Framework parâmetros de sete categorias + diferentes. São eles: tipos primitivos (int, float, boolean, etc), classes wrapper (Integer, Float, Boolean, etc.) + , String, Class, Map, Array e instâncias de Enum. + A seguir vamos explicar e exemplificar como utilizar cada um desses tipos, e alertar para as possíveis exceções que poderão ser lançadas para sua aplicação. - A partir da versão 2.4.0 não são mais reconhecidas as convenções. Os parâmetros serão procurados exatamente + A partir da versão 2.4.0 não são mais reconhecidas as convenções de substituição de nomes. Os parâmetros serão procurados exatamente como foram definidos na classe de configuração. @@ -332,58 +332,42 @@ untypedClass=package.MyOtherClass Para utilizar parâmetros do tipo Map, o arquivo de configurações deve usar a seguinte - estrutura na formação da chave: prefixo+chavedomap+nomedoatributo. Vejamos um exemplo. + estrutura na formação da chave: prefixo+nomedoatributo+chavedomap. Vejamos um exemplo. Se temos em nossa aplicação uma classe de configuração como a mostrada abaixo: url; + private Map connectionConfiguration; - private Map driverClass; - - public Map getUrl() { - return url; - } - - public Map DriverClass() { - return driverClass; + public Map getConnectionConfiguration() { + return connectionConfiguration; } } ]]> - O arquivo de configuração deverá ser preenchido no formato seguinte (se for do tipo properties): + O arquivo de configuração deverá ser preenchido no seguinte formato (se for do tipo properties): - + - Dessa forma, ao fazer a chamada url.get("mapkey2");por exemplo, o valor retornado será - jdbc:mysql://localhost:3306/app. + Dessa forma, ao fazer a chamada connectionConfiguration.get("gateway"); por exemplo, o valor retornado será + 192.168.0.1. - - - O ponto entre a chave do Map e o nome do parâmetro é adicionado automaticamente pelo - framework. - - + Você pode utilizar a chave do Map com nome "default" para indicar que, no arquivo de configuração, a chave é formada - apenas pela junção do prefixo com o atributo, sem utilizar a própria chave do Map. Por exemplo, se na sua classe - existir um comando como este: - - - o framework irá procurar no arquivo de configuração uma linha como esta: - + apenas pela junção do prefixo com o atributo, sem utilizar a própria chave do Map. Por exemplo, se o seu arquivo de propriedades + contiver uma chave: + + + então seu código poderá ter um comando: + + e o valor de value será "Default Value". Caso a classe de configuração não esteja associada a um arquivo que contenha a chave de um de seus parâmetros @@ -427,7 +411,66 @@ integerArray=1 - + + + + + + + + + Enum + + + + + + É possível criar uma lista de constantes do tipo Enum e carregar um valor de constante + através de um arquivo de configuração. Por exemplo, caso exista o seguinte Enum + + + + + e ele seja usado no seguinte arquivo de configuração + + + + O arquivo do tipo properties pode ser criado assim: + + + + + + O valor definido no arquivo de configuração para atributos do tipo Enum deve + ser idêntico ao nome da constante definida no Enum, inclusive casando letras maiúsculas e + minúsculas. De fato, o valor da propriedade deve casar com o valor retornado no código: + Enum.name(). + + + + Caso o valor definido no arquivo de configuração não case com nenhuma constante definida no Enum, + uma exceção de tipo ConfigurationException de causa ConversionException + será lançada. Já se à propriedade for atribuido um valor vazio, o atributo do tipo Enum receberá + o valor null. + + + + + + +
diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConfigurationEnumValueExtractor.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConfigurationEnumValueExtractor.java index 9e99e64..b6ffcad 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConfigurationEnumValueExtractor.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConfigurationEnumValueExtractor.java @@ -58,7 +58,7 @@ public class ConfigurationEnumValueExtractor implements ConfigurationValueExtrac public Object getValue(String prefix, String key, Field field, Configuration configuration) throws Exception { String value = configuration.getString(prefix + key); - if (value!=null){ + if (value!=null && !value.trim().equals("")){ Object enums[] = field.getType().getEnumConstants(); for (int i=0; i