Retorna um array com o nome de todos os métodos que possuem a annotation passada como argumento
Sintaxe
Reflection.getMethodsByAnnotation( oObj,cAnnotationName )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
|---|---|---|---|---|
oObj | objeto | Objeto na qual a busca será realizada | X | |
cAnnotationName | caractere | Nome da annotation a ser procurada | X |
Retorno
Nome | Tipo | Descrição |
|---|---|---|
aRet | Array | Retorna um array com o nome de todos os métodos da classe que possuem esta annotation. |
Exemplos
exemplo1.tlpp
#INCLUDE "MsObject.CH"
NAMESPACE TesteReflection
MAIN FUNCTION Teste()
ClasseTeste():New()
RETURN
@annotation AnnotationMethod
property1 as char
@end
@annotation AnnotationClass
property1 as char
@end
@AnnotationClass("testeClass")
class ClasseUm
public method New()
@AnnotationMethod("testeMethod")
public method testeMethod()
endclass
METHOD NEW() CLASS ClasseUm
return self
method testeMethod() CLASS ClasseUm
conout("Teste de metodo")
return
CLASS ClasseTeste
PUBLIC METHOD NEW()
ENDCLASS
METHOD NEW() CLASS ClasseTeste
local classes := {}
local methods := {}
local instance
// Pego todas as classes que possuem a annotation "AnnotationClass"
classes := Reflection.getClassesByAnnotation("AnnotationClass", "TesteReflection.*")
conout(classes[1])
// Instancio um novo objeto desta classe
instance := &(classes [1] + "():New()")
// Pego todos os metodos dentro da classe que possuem a annotation "AnnotationMethod"
methods := Reflection.getMethodsByAnnotation(instance, "AnnotationMethod")
conout(methods[1])
// Executo o metodo encontrado
&("instance:" + methods[1] + "()")
RETURN self
Resultado do Exemplo
TESTEREFLECTION.CLASSEUM
TESTEMETHOD
Teste de metodo
Abrangência
17.3.0.3
Veja também
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas