Árvore de páginas

Versões comparadas

Chave

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

...

Bloco de código
collapsefalse
Reflection.getMethodParmsByAnnotation( oObjectxParam, cMethodName, aListParms, cAnnotationName)

...

Nome

Tipo

Descrição

Obrigatório

Referência

oObjectxParam**

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


aListParms
arrayLista de parâmetros com a posição onde a Annotation foi encontrada.           X        X
cAnnotationName
caractereNome da Annotation a  ser procurada.           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 algum parâmetro que contenha a Annotation, caso não encontre .F. 

aListParams

array

Array passada por referência na busca contendo em cada indicie a posição do parâmetro onde a Annotation  foi encontrada. Caso não encontre, a array retorna vazia.

...

Exemplos

Bloco de código
languagecpp
themeEclipse
titletest_doc_getMethodParmsByAnnotationexemplo1.tlpp
linenumberstrue
#include "tlpp-core.th"


@annotation AnnotationGetMethodParmsByAnnotation
nickname as char
@end

Class GetMethodParmsByAnnotation

	Public Method New()
	Public Method ParmByAnnotation(@AnnotationGetMethodParmsByAnnotation("annotation parm1") parm1, @AnnotationGetMethodParmsByAnnotation("annotation parm2") parm2)
EndClass

Method New() class GetMethodParmsByAnnotation
Return Self

Function u_testGetMethodParmsByAnnotation()

	Local oObj := GetMethodParmsByAnnotation():New()
	Local lRet := .F. as logical
	Local aRet := {} as array

	lRet := Reflection.GetMethodParmsByAnnotation(oObj, "ParmByAnnotation", @aRet, "AnnotationGetMethodParmsByAnnotation")
	if lRet
		Conout(lRet)
		aEval(aRet,{|x| Conout(x)})
	else
		Conout('Nao foi possivel encontrar nenhuma Annotation com os parametros informados')
	endIf
Return
Bloco de código
languagecpp
themeEclipse
titleexemplo2.tlpp
linenumberstrue

...

#include "tlpp-core.th"


@annotation AnnotationGetMethodParmsByAnnotation
nickname as char
@end

Class GetMethodParmsByAnnotation

	Public Method New()
	Public Method ParmByAnnotation(@AnnotationGetMethodParmsByAnnotation("annotation parm1") parm1, @AnnotationGetMethodParmsByAnnotation("annotation parm2") parm2)
EndClass

Method New() class GetMethodParmsByAnnotation
Return Self

Function u_testGetMethodParmsByAnnotation()

	Local lRet := .F. as logical
	Local aRet := {} as array

	lRet := Reflection.GetMethodParmsByAnnotation("GetMethodParmsByAnnotation", "ParmByAnnotation", @aRet, "AnnotationGetMethodParmsByAnnotation")
	if lRet
		Conout(lRet)
		aEval(aRet,{|x| Conout(x)})
	else
		Conout('Nao foi possivel encontrar nenhuma Annotation com os parametros informados')
	endIf
Return

Resultado dos Exemplos

.T.

1

2

Abrangência

17.3.0.3

Veja também

...