Efetua a busca de Annotation a partir de um determinado parâmetro, em determinada posição em um método.
Sintaxe
Reflection.getMethodParmAnnotation( xParam, cMethodName, nParmPos, cAnnotationName)
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
xParam** | objeto/caractere** | Objeto instância da classe/nome da classe** proprietário/a** do método onde será procurada a Annotation. | X | |
cMethodName | caractere | Nome do método onde será procurada a Annotation. | X | |
nParmPos | numérico | Posição do parâmetro onde será procurada a Annotation | X | |
cAnnotationName | caractere | Nome da Annotation a ser procurada. | 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 |
---|---|---|
jRet | objeto | Objeto do tipo Json sendo a propriedade a Annotation e contendo o valor da mesma. Retorna NIL caso não encontre resultado para a busca. |
Exemplo
exemplo1.tlpp
#include "tlpp-core.th" @annotation AnnotationGetMethodParmAnnotation nickname as char @end Class GetMethodParmAnnotation Public Method New() Public Method ParmAnnotation(@AnnotationGetMethodParmAnnotation("annotation parm1") parm1, @AnnotationGetMethodParmAnnotation("annotation parm2") parm2) EndClass Method New() class GetMethodParmAnnotation Return Self Function u_testGetMethodParmAnnotation() Local oObj := GetMethodParmAnnotation():New() Local jRet jRet := Reflection.getMethodParmAnnotation(oObj, "ParmAnnotation", 1, "AnnotationGetMethodParmAnnotation") Conout(jRet["nickname"]) jRet := Reflection.getMethodParmAnnotation(oObj,"ParmAnnotation", 2, "AnnotationGetMethodParmAnnotation") Conout(jRet["nickname"]) Return
exemplo2.tlpp
#include "tlpp-core.th" @annotation AnnotationGetMethodParmAnnotation nickname as char @end Class GetMethodParmAnnotation Public Method New() Public Method ParmAnnotation(@AnnotationGetMethodParmAnnotation("annotation parm1") parm1, @AnnotationGetMethodParmAnnotation("annotation parm2") parm2) EndClass Method New() class GetMethodParmAnnotation Return Self Function u_testGetMethodParmAnnotation() Local jRet jRet := Reflection.getMethodParmAnnotation("GetMethodParmAnnotation", "ParmAnnotation", 1, "AnnotationGetMethodParmAnnotation") Conout(jRet["nickname"]) jRet := Reflection.getMethodParmAnnotation("GetMethodParmAnnotation","ParmAnnotation", 2, "AnnotationGetMethodParmAnnotation") Conout(jRet["nickname"]) Return
Resultado do Exemplo
annotation parm1
annotation parm2
Abrangência
17.3.0.3
Veja também
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas