Como adicionar propriedades dinamicamente nos domais e listar estas propriedades.
18/01/2013 14:13
ItemAvaliacao.list().each {
def nome = "$it.subClasse.descricao".concat("_").concat("$it.descricao").camelCase()
def nomePonto = "$it.subClasse.descricao".concat("_").concat("$it.descricao").camelCase().concat("Ponto")
if ( !CuboRelatorio.metaClass.getProperty(nome) ) {
CuboRelatorio.metaClass."$nome" = 0.0
CuboRelatorio.metaClass."$nomePonto" = 0
}
}
class Pessoa {
String nome
}
// em outra classe
Pessoa p = new Pessoa()
p.metaClass.email='jjj@jjj.com'
p.metaClass.telefone='91-8888-7777'
println p.email
println p.telefone
def campo1 = "apelido"
def campo2 = "blog"
p.metaClass."$campo1"='yoshi'
p.metaClass."$campo2"='naotenho.blog.com'
println p."$campo1"
println p."$campo2"
def nome = "$it.subClasse.descricao".concat("_").concat("$it.descricao").camelCase()
def nomePonto = "$it.subClasse.descricao".concat("_").concat("$it.descricao").camelCase().concat("Ponto")
def nome = "${it.subClasse?.descricao}_${it.descricao.camelCase()}"
def nomePonto = "${nome}Ponto"
class Pessoa {
String nome
}
// em outra classe
Pessoa p = new Pessoa()
p.metaClass.email='jjj@jjj.com'
p.metaClass.telefone='91-8888-7777'
println p.email
println p.telefone
def campo1 = "apelido"
def campo2 = "blog"
p.metaClass."$campo1"='yoshi'
p.metaClass."$campo2"='naotenho.blog.com'
println p."$campo1"
println p."$campo2"
class CuboRelatorio{
Map props = [:]
def propertyMissing(String name) {
if(name.startsWith('_')){
this.props[name.substring(1)]
}else{
throw new MissingPropertyException(name)
}
}
def propertyMissing(String name, value) {
if(name.startsWith('_')){
this.props[name.substring(1)] = value
}else{
throw new MissingPropertyException(name)
}
}
}
Para se registrar, clique aqui.