Árvore de páginas

Efetua a busca de uma Annotation no método de um objeto, em uma determinada posição de parâmetro.

Sintaxe

Reflection.isAnnotationMethodParamPresent( xParam, cMethodName, nParmPos, cAnnotationName)

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

xParam

objeto/caractere**

Objeto instancia da classe/Nome da classe** proprietário/a do método.

X


cMethodName

caractere

Nome do método onde será procurada a Annotation.

X


nParmPos
numéricoPosição do parâmetro no método 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

Retorna .T. caso encontre a Annotation no parâmetro na posição passada,  .F. caso não encontre.

Exemplos

exemplo1.tlpp
@annotation AnnotationIsAnnotationMethodParamPresent
nickname as char
@end

Class IsAnnotationMethodParamPresent

	Public Method New()
	Public Method ParmAnnotation(@AnnotationIsAnnotationMethodParamPresent("annotation parm1") parm1, @AnnotationIsAnnotationMethodParamPresent("annotation parm2") parm2)
EndClass

Method New() class IsAnnotationMethodParamPresent
Return Self

Function u_testIsAnnotationMethodParamPresent()

	Local oObj := IsAnnotationMethodParamPresent():New()

	Conout(Reflection.IsAnnotationMethodParamPresent(oObj, "ParmAnnotation", 1, "AnnotationIsAnnotationMethodParamPresent"))
	Conout(Reflection.IsAnnotationMethodParamPresent(oObj, "ParmAnnotation", 2, "AnnotationIsAnnotationMethodParamPresent"))
	Conout(Reflection.IsAnnotationMethodParamPresent(oObj, "ParmAnnotation", 2, "NoExist"))

Return
exemplo2.tlpp
@annotation AnnotationIsAnnotationMethodParamPresent
nickname as char
@end

Class IsAnnotationMethodParamPresent

	Public Method New()
	Public Method ParmAnnotation(@AnnotationIsAnnotationMethodParamPresent("annotation parm1") parm1, @AnnotationIsAnnotationMethodParamPresent("annotation parm2") parm2)
EndClass

Method New() class IsAnnotationMethodParamPresent
Return Self

Function u_testIsAnnotationMethodParamPresent()

	Conout(Reflection.IsAnnotationMethodParamPresent("IsAnnotationMethodParamPresent", "ParmAnnotation", 1, "AnnotationIsAnnotationMethodParamPresent"))
	Conout(Reflection.IsAnnotationMethodParamPresent("IsAnnotationMethodParamPresent", "ParmAnnotation", 2, "AnnotationIsAnnotationMethodParamPresent"))
	Conout(Reflection.IsAnnotationMethodParamPresent("IsAnnotationMethodParamPresent", "ParmAnnotation", 2, "NoExist"))

Return

Resultado dos Exemplos

.T.

.T.

.F.

Abrangência

17.3.0.3

Veja também

  • Sem rótulos