Árvore de páginas

Efetua a busca de uma Annotation em uma propriedade de um objeto.

Sintaxe

Reflection.isAnnotationDataPresent( xParam, cPropertyName, cAnnotationName )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

xParam**

objeto/caractere**

Objeto instância da classe/nome da classe** onde será procurado/a  a Annotation.

X


cPropertyName

caractere

Nome da propriedade onde será procurada a Annotation.

X


cAnnotationName
caractereNome da Annotation que 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

lRet

lógico

 .T. caso encontre a Annotation e .F. caso não encontre.

Exemplos

exemplo1.tlpp
#include "tlpp-core.th"

@annotation AnnotationIsAnnotationDataPresent
nickname as char
@end

Class IsAnnotationDataPresent

	@AnnotationIsAnnotationDataPresent(nickname = "Totvs")
	Public data data1

	Public Method New()
EndClass

Method New() class IsAnnotationDataPresent
Return Self

Function u_testIsAnnotationDataPresent()
	Local oObj := IsAnnotationDataPresent():New()
	Conout(Reflection.isAnnotationDataPresent(oObj, "data1", "AnnotationIsAnnotationDataPresent"))
	Conout(Reflection.isAnnotationDataPresent(oObj, "data1", "NoExist"))
Return
exemplo2.tlpp
#include "tlpp-core.th"

@annotation AnnotationIsAnnotationDataPresent
nickname as char
@end

Class IsAnnotationDataPresent

	@AnnotationIsAnnotationDataPresent(nickname = "Totvs")
	Public data data1

	Public Method New()
EndClass

Method New() class IsAnnotationDataPresent
Return Self

Function u_testIsAnnotationDataPresent()
	
	Conout(Reflection.isAnnotationDataPresent("IsAnnotationDataPresent", "data1", "AnnotationIsAnnotationDataPresent"))
	Conout(Reflection.isAnnotationDataPresent("IsAnnotationDataPresent", "data1", "NoExist"))

Return

Resultado dos Exemplos

.T.

.F.

Abrangência

17.3.0.3

Veja também

  • Sem rótulos