Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Pagetitle
Reflection.isAnnotationMethodParamPresent
Reflection.isAnnotationMethodParamPresent

Verifica se existe Efetua a busca de uma Annotation para um determinado parâmetro de uma função no método de um objeto, em uma determinada posição de parâmetro.

Sintaxe

Bloco de código
collapsefalse
Reflection.isAnnotationMethodParamPresent( oObjectxParam, cFunctionNamecMethodName, nParmPos, cAnnotationName)

...

Nome

Tipo

Descrição

Obrigatório

Referência

oObjectxParam

objetoIndica o objeto onde está o método que será procurado a Annotation/caractere**

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

X


cPropertyNamecMethodName

caractere

Indica o nome da função Nome do método onde será procurada a Annotation.

X


nParmPos
numéricoIndica a posição Posição do parâmetro no método onde será procurada a Annotation.           XX
cAnnotationName
caractereIndica o nome Nome da Annotation que será procurada.X           X
Informações
titleImplementaçã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 e no parâmetro na posição passada,  .F. caso não encontre.

Exemplos

Bloco de código
languagecpp
themeEclipse
titleexemplo1.tlpp
linenumberstrue
@interface@annotation AnnotationExemplo
    NICKNAMEAnnotationIsAnnotationMethodParamPresent
nickname as char
@end

Class IsAnnotationMethodParamPresent

	Public Method New()
class	Public MeuObjeto
    public data data1
    public method new()
    public method teste(@AnnotationExemplo("valor parm1") parm1, @AnnotationExemplo("valor parm2") parm2)
EndClass
  
  
main function usoDeAnnotation()
    local oObj := MeuObjeto():New()
    local jRet
	conout(Reflection.isAnnotationMethodParamPresent(oObj,"testeMethod 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
Bloco de código
languagecpp
themeEclipse
titleexemplo2.tlpp
linenumberstrue
@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, "AnnotationExemploAnnotationIsAnnotationMethodParamPresent"))
	conoutConout(Reflection.isAnnotationMethodParamPresentIsAnnotationMethodParamPresent(oObj"IsAnnotationMethodParamPresent", "testeParmAnnotation", 2, "AnnotationExemploAnnotationIsAnnotationMethodParamPresent"))
	conoutConout(Reflection.isAnnotationMethodParamPresentIsAnnotationMethodParamPresent(oObj"IsAnnotationMethodParamPresent", "testeParmAnnotation", 2, "AnnotationExemploErroNoExist"))
return
Return

Resultado

...

dos Exemplos

.T.

.FT.

.F.

Abrangência

17.3.0.3

Veja também

...