Árvore de páginas

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
caractereMé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


  • Sem rótulos