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