Duvida para fazer uma comparação entre atributos de classes diferentes
01/11/2014 16:46
0
Boa tarde pessoal..

tenho uma entidade Disciplina, dessa forma:
class Disciplina {
String nome
String situacao
}

que é carregada na entidade TFC:
class TFC {
String tema
...
Disciplina disciplina
}

e o TFC por sua vez é chamado onde eu estou fazendo:
class AvaliacaoTFC {
Aluno aluno
double nota
...
TFC tfc
}

A duvida é o seguinte, estou fazendo um campo calculado dentro de AvaliacaoTFC, mas para isso preciso comparar qual é a disciplina dentro do TFC para poder jogar na fórmula correta..
Como poderia fazer essa comparação? Estou fazendo assim:

double getNotafinal() {
if((TFC.disciplina.id==1)||(TFC.disciplina.id==3)) {
def nf = ((preprojetoTFCI*10)+(orientador*20)+(coordenador*20)+(banca*50))/100
return nf
}
if((TFC.disciplina.id==2)||(TFC.disciplina.id)==4) {
def nf = ((preprojetoTFCI*15)+(orientador*20)+(coordenador*15)+(banca*50))/100
return nf
}
}

Desde já agradeço..
Tags: Domain, atributos, classes, comparação


0
Olá Rogério,
Sua solução não está, qual o problema?
Observei que você colocou o nome da sua variável de "tfc" e no código que postou está usando "TFC.disciplina", o "TFC" não deveria ser minúsculo?
Este código que postou está na domain?
03/11/2014 10:14


0
Olá Diego, valeu pela resposta..
Realmente eu percebi depois que o certo seria a variável tfc.disciplina

Este código está no domain sim, só que tenho um problema agora, esse codigo somente funciona quando já tinha valores inseridos nesses campos de nota, então quando vou criar um novo cadastro ele me dá um erro de que a minha função está retornando null.
03/11/2014 11:55


0
Rogério,
O seu método está sendo chamado chamado na criação de AvaliacaoTFC? Avalie a possibilidade de coloca-lo em um service.
Você conhece as "constraints"? Voce pode colocar nota (blank: false, nullable: false), assim você não terá notas null.
03/11/2014 13:47


0
Diego.. agradeço sua ajuda cara..

Consegui resolver o problema com uma simples solução que até entao eu tinha tratado de forma errada..

Apliquei um try catch circundando essas validações do if..

try {
if()
...
if()
...
catch {
return 0.0
}
05/11/2014 21:52



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto