Properties Files - Interpretação de regras em tempo de execução

2 respostas
B

Bom dia,

sou novo no forum e não sei se postei minha dúvida corretamente, pesquisei e não encontrei solução, peço desculpas antecipadas caso não o tenha feito.

Estou criando um .properties onde armazeno algumas regras para execução do meu sistema, resolvi armazenar as regras nesse arquivo para não ter que recompilar minha aplicação sempre que uma regra for alterada.

Um exemplo de regra pode ser a seguinte:

r1 = 2 + 3

A minha dúvida é a seguinte, como interpretar esta regra, pois quando faço leitura do meu .properties essa regra me retorna como String. Quando dou um comando de impressão me retorna “2 + 3” (até ai nada de mais por se tratar de um String), minha intenção é que a resposta seja “5”.

Alguém sabe me dizer se existe algum meio para fazer isso, seja a forma da leitura ou uma outra maneira de armazenar essas regras. Minha única necessidade é não precisar recompilar o código sempre que uma regra for alterada.

[]s
Bruno

2 Respostas

cristian_clever

Bom dia Bruno!

DE qualquer forma ao utilizar um properties vc deverá interpretar a expressão, similar a uma exprssão eval de javascript.

O que me vem na cabeça é a ultilização de injeção de dependencias como uma abordagem, dessa forma ao iniciar sua aplicação vc iria setar
as propriedades de uma determinada operação por exemplo:

Operador1 = 3
Operador2=2
OperationType=Sum

Aproveite e de uma olhada em http://www.beanshell.org, acredito que ele pode realizar o que vc precisa.

Em um dos exemplos de utilização da API ele mostra:

a=5; eval("b=a*2"); print(b); // 10

Talvez outra abordagem uma pouco mais refinada seja a utilização de Drolls ou algo similar.
Aí vai depender muito da necessidade da sua aplicação.

[]s

B

Olá Cristian,

funcionou utilizando BeanShell como você sugeriu.

Obrigado.

[]s
Bruno

Criado 18 de setembro de 2009
Ultima resposta 18 de set. de 2009
Respostas 2
Participantes 2