Bom dia galera, tudo certo ?? Bem, na minha aplicação tenho um xhtml com a forma de avaliação. Nela, o usuário pode escolher qual a forma que vai avaliar a sua turma naquela escola. Bem, daí que tenho um campo para o usuário digitar a fórmula que ele quer que seja avaliada a turma dele. Exemplo: Formula = (n1 + n2 + n3 + n4)/4; Até aí tudo bem…
No meu cadastro de notas, quando vou dar a nota para cada aluno em cada perído, por exemplo n1 = 1º bimestre, n2 = 2º bimestre… ele vai substituir a string ( no caso n1) pela nota informada no primeiro bimestre. Consegui fazer isso…
Só que agora estou com dificuldade em fazer com que seja interpretada a formula para um possível cálculo. Pesquisei e tals, e algumas pessoas já usaram o seguinte:
Binding binding = new Binding();
GroovyShell shell = new GroovyShell(binding);
System.out.println(shell.evaluate(formula))
Só que nao estou sabendo qual importação utilizar…Abaixo, como estou fazendo no meu bean:
public void atualizarMediaFinal() {
try {
Integer codEscola = crudObj.getEscola().getCodigo();
Integer codTurma = crudObj.getTurma().getCodigo();
Integer codDisciplina = crudObj.getDisciplinas().getCodigo();
Integer codAluno = crudObj.getAluno().getCodigo();
Integer codMatricula = crudObj.getCodMatricula();
String formula = turma.getEtapa().getFormaAvaliacao().getFormulaAvaliacao();
if (formula.contains("np1")) {
formula = formula.replace("np1", String.valueOf(1));
}
if (formula.contains("np2")) {
formula = formula.replace("np2", String.valueOf(2));
}
if (formula.contains("np3")) {
formula = formula.replace("np3", String.valueOf(3));
}
if (formula.contains("np4")) {
formula = formula.replace("np4", String.valueOf(4));
}
} catch (Exception exception) {
fatal("Problema no método atualizarMediaFinal");
fatal(exception.getCause().getMessage());
}
}
Se alguém puder ajudar, agradeceria mto…Vlww
