Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Retorna um array com o objeto Method de cada um dos métodos que possuem a annotation no objeto enviado.

Sintaxe

Bloco de código
collapsefalse
Reflection.getMethodsObjectByAnnotation( oObj,cAnnotationName )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

oObj

objeto

Objeto na qual a busca será realizada

X


cAnnotationName 
caractereNome da annotation a ser procuradaX

Retorno

Nome

Tipo

Descrição

aRet

Array

Retorna um array com o os objetos Method.

Exemplos

Bloco de código
languagecpp
themeEclipse
titleexemplo1.tlpp
linenumberstrue
//Definicoes das annotation, deve estar num fonte
#include "tlpp-object.th"
  
  
@annotation metodo
@end

@annotation classeMetodo
@end
  
@classeMetodo()
Class NovaClasseMetodo
  
    Public Data TesteAttr
      
    @metodo()
    Public Method MetodoTeste()
  
    Public Method New(str)
endclass
  
  
Method New(str) class NovaClasseMetodo
    ::TesteAttr := str
return self
  
Method MetodoTeste() class NovaClasseMetodo
    Conout("Instancia executada: " + ::TesteAttr)
return "Banana"
  
  
User Function testeMetodo()
    local ObjMethod
    local classes
    local obj1
      
    classes := Reflection.getClassesByAnnotation("classeMetodo", "") // vazio para pegar todas as classes do repositorio
      
    obj1 := classes[1]:CreateInstance("Instancia 1")
      
    ObjMethod := Reflection.getMethodsObjectByAnnotation(obj1, "metodo")
    conout("Nome do Metodo: " + ObjMethod[1]:cMethodName)

return

Resultado do Exemplo

Nome do Metodo: METODOTESTE

Abrangência

17.3.0.3

Veja também