Efetua a busca de Annotations associadas a um determinado método.
Sintaxe
Reflection.getMethodAnnotationList( xParam, cMethodName)
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
xParam** | objeto/caractere** | Objeto instância da classe/nome da classe** onde está definido o método cujas Annotations serão retornadas | X | |
cMethodName | caractere | Método onde serão procuradas as Annotations | X |
Implementação de comportamento
A partir do build 24.3.0.0, também haverá a opção de passar simplesmente o nome da classe em xParam, conforme exemplo 2. Mas continua valendo a passagem da instância do objeto (exemplo 1).
Retorno
Nome | Tipo | Descrição |
---|---|---|
aRet | array | Array contendo em cada posição um objeto do tipo Json onde cada propriedade é o nome da Annotation encontrada. Caso nada seja encontrado, seu valor é NIL. |
Exemplos
exemplo1.tlpp
#include "tlpp-core.th" @annotation AnnotationGetMethodAnnotationList01 teste1 as char @end @annotation AnnotationGetMethodAnnotationList02 teste2 as char @end Class GetMethodAnnotationList Public Method New() @AnnotationGetMethodAnnotationList01(teste1 = "Primeira Annotation") @AnnotationGetMethodAnnotationList02(teste2 = "Segunda Annotation") Public Method MethodWithAnnotation() EndClass Method New() class GetMethodAnnotationList Return Self Method MethodWithAnnotation() class GetMethodAnnotationList Return Function u_testGetMethodAnnotationList(aResult) Local oObj := GetMethodAnnotationList():New() Local aRet aRet := Reflection.getMethodAnnotationList(oObj, "MethodWithAnnotation") Conout(Len(aRet)) Conout(aRet[1]["teste1"]) Conout(aRet[2]["teste2"]) Return
exemplo2.tlpp
#include "tlpp-core.th" @annotation AnnotationGetMethodAnnotationList01 teste1 as char @end @annotation AnnotationGetMethodAnnotationList02 teste2 as char @end Class GetMethodAnnotationList Public Method New() @AnnotationGetMethodAnnotationList01(teste1 = "Primeira Annotation") @AnnotationGetMethodAnnotationList02(teste2 = "Segunda Annotation") Public Method MethodWithAnnotation() EndClass Method New() class GetMethodAnnotationList Return Self Method MethodWithAnnotation() class GetMethodAnnotationList Return Function u_testGetMethodAnnotationList(aResult) Local aRet aRet := Reflection.getMethodAnnotationList("GetMethodAnnotationList", "MethodWithAnnotation") Conout(Len(aRet)) Conout(aRet[1]["teste1"]) Conout(aRet[2]["teste2"]) Return
Resultado dos Exemplos
2
Primeira Annotation
Segunda Annotation
Abrangência
17.3.0.3
Veja também
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas