Filtrando os elementos de uma list
02/09/2010 00:00
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