Mudanças entre as edições de "RFWBundle"

De Wiki do Leitão
Ir para: navegação, pesquisa
Linha 12: Linha 12:
== Obtendo o Bundle ==
== Obtendo o Bundle ==


Para obter o Bundle o '''RFWBundle''' oferece os métodos '''''log*(...)'''''. Dependendo do objeto passado o módulo é capaz de extrair a chave e procurar nos arquivos de bundle.
Para obter o Bundle o '''RFWBundle''' oferece os métodos '''''get(...)'''''. Dependendo do objeto passado o módulo é capaz de extrair a chave e procurar nos arquivos de bundle automaticamente. Veja os detalhes de cada método a seguir:
 
=== get(Enum<?>) ===
 
Este método recebe como um argumento um objeto de Enumeração. O objeto de enumeração é procurado no arquivo de bundle pelo '''CanonicalName da sua Classe + Name da Enmeration'''. Por exemplo, imagine a Enumeration '''CASE_INSENSITIVE_ORDER''' da classe '''java.lang.String''', será convertida na chave '''java.lang.String.CASE_INSENSITIVE_ORDER''', para procurar entre os arquivos de bundle.
 
Neste caso, o arquivo de bundle deve ter uma entrada similar a esta:
<pre>java.lang.String.CASE_INSENSITIVE_ORDER=Ordem sem sensibilidade de caixa alta.</PRE>
 
 
{{nota|RUString.getEnumKey()|A classe '''[RUString]''' contém um método '''getEnumKey(Enum<?>)''' que retorna exatamente a chave do Enumeration passado, mesmo método utilizado pelo RFWVBundle.}}
 
 
=== get(String, String...) ===
 
Recupera os bundles dos arquivos e substitui propriedades dentro deles. Este método procura por bundles que tenham o texto '''${i}''', onde i é o índice do array recebido para substituir seu conteúdo.
 
Por exemplo, o bundle seja:
<pre>warnmsg=Mensagem de erro (${0}): ${1}</pre>
 
 
E código executado seja:
{{Java||
<pre>
String v = RFWBundle.get("warnmsg", "500", "Erro Crítico");
</pre>}}
 
O conteúdo da variável v será "Mensagem de Erro (500): Erro Crítico".
 
 
=== get(MeasureUnit) ===
 
Similar o método de Enumeration, ele recebe um objeto da interface MeasureUnit e se resolve para tentar descobrir o enumeration correto. Para mais informações sobre esta classe veja mais sobre o [MeasureUnit].
 
 
=== get(Throwable) ===
 
É um método criado para tentar obter o bundle diretamente dos erros (Throwables).

Edição das 13h59min de 27 de junho de 2023

O RFWBundle é um serviço de Bundle oferecido pelo RFW. A classe estática RFWBundle ao ser inicializada já carrega os bundles do próprio RFW, trazendo as mensagens para as exceptions e Enumarations da própria biblioteca.

Carregando Arquivos de Bundles

Para incluir um arquivo de properties dentro do RFWBundle, deve ser chamado o método loadBundle(...) e passar o novo arquivo de bundle. Também é possível realizar a operação ao inicializar o framework, pelo método initializeBundle(...) da classe RFW.

Java 256.png Carregando Arquivo de Bundle
RFWBundle.loadBundle("bundlefile.properties");


Obtendo o Bundle

Para obter o Bundle o RFWBundle oferece os métodos get(...). Dependendo do objeto passado o módulo é capaz de extrair a chave e procurar nos arquivos de bundle automaticamente. Veja os detalhes de cada método a seguir:

get(Enum<?>)

Este método recebe como um argumento um objeto de Enumeração. O objeto de enumeração é procurado no arquivo de bundle pelo CanonicalName da sua Classe + Name da Enmeration. Por exemplo, imagine a Enumeration CASE_INSENSITIVE_ORDER da classe java.lang.String, será convertida na chave java.lang.String.CASE_INSENSITIVE_ORDER, para procurar entre os arquivos de bundle.

Neste caso, o arquivo de bundle deve ter uma entrada similar a esta:

java.lang.String.CASE_INSENSITIVE_ORDER=Ordem sem sensibilidade de caixa alta.


Note 64.png
RUString.getEnumKey()
A classe [RUString] contém um método getEnumKey(Enum<?>) que retorna exatamente a chave do Enumeration passado, mesmo método utilizado pelo RFWVBundle.


get(String, String...)

Recupera os bundles dos arquivos e substitui propriedades dentro deles. Este método procura por bundles que tenham o texto ${i}, onde i é o índice do array recebido para substituir seu conteúdo.

Por exemplo, o bundle seja:

warnmsg=Mensagem de erro (${0}): ${1}


E código executado seja:

Java 256.png
String v = RFWBundle.get("warnmsg", "500", "Erro Crítico");

O conteúdo da variável v será "Mensagem de Erro (500): Erro Crítico".


get(MeasureUnit)

Similar o método de Enumeration, ele recebe um objeto da interface MeasureUnit e se resolve para tentar descobrir o enumeration correto. Para mais informações sobre esta classe veja mais sobre o [MeasureUnit].


get(Throwable)

É um método criado para tentar obter o bundle diretamente dos erros (Throwables).