Filtrando os elementos de uma list
02/09/2010 00:00
0
Eu tenho a seguinte questão. Preciso de filtrar os elementos de uma list. Eu tenho a classe Pessoa cujo método toString me apresenta o nome e o tipo da pessoa:


String toString(){
"${nome}: ${tipo}"
}
E a classe Socio que tem uma relação de uma para um com Pessoa:

class Socio {
Pessoa pessoa
//etc...

Existem pessoas que são do tipo sócio. O método toString de Pessoa retorna "Ana Fernandes: Sócio", por exemplo.

Para fazer uma lista das pessoas que são do tipo sócio tenho o seguinte código (não está a funcionar):

class Socio{
Pessoa pessoa
//restantes atributos

def pessoas = []
def exp = ~'[\b: ]' //String que segue os caracteres ": "


static constraints = {
pessoa()

pessoa.each({
if(it.toString().grep($exp) == "Sócio")
pessoas.add "${it.toString()}"
})

pessoas()

//etc
}

A variável exp pretende expressar uma String seguida de ": ". Com este código eu quero por na list pessoas, os elementos da list pessoa, que contêm "Sócio" no fim da String e que é retornada pelo método toString da classe Pessoa. Mas não funciona. Infelizmente deve ser por eu não entender muito bem as closures.
Tags: Tópicos avançados


0
Ola,

qdo vc diz que
Existem pessoas que são do tipo sócio
. Entao socio é uma atributo da classe Pessoa, correto ?
08/09/2010 00:00


0
Sim, existe o atributo com o nome tipo que é uma inList do tipo String, em que um dos items da inList é "Sócio".
19/09/2010 00:00



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