Árvore de páginas

Versões comparadas

Chave

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

...

Pagetitle
Reflection.getFunctionParmsByAnnotation
Reflection.getFunctionParmsByAnnotation

Retorna se encontrou a Annotation em qualquer parâmetro Procura Annotation  nos parâmetros de uma função.

Sintaxe

Bloco de código
collapsefalse
Reflection.getFunctionParmsByAnnotation( cSourceName, cFunctionName, aListParms, cAnnotationName)

...

Nome

Tipo

Descrição

Obrigatório

Referência

cSourceName

caractere

Indica o nome Nome do fonte onde está a função que será procurado a cuja função  onde serão procuradas as Annotation.

X


cPropertyNamecFunctionName

caractere

Indica o nome Nome da função onde será procurada a Annotation.

X


aListParms
arrayRetorna a lista Lista de parâmetros que contém a Annotationcontendo o retorno das Annotation.           XXX
cAnnotationName
caractereIndica o nome Nome da Annotation que será a ser procurada.          X

Retorno

Nome

Tipo

Descrição

lRet

lógico

Retorna .T. caso encontre algum parâmetro que tenha a Annotation e .F. caso não tenha

Exemplos

Bloco de código
languagecpp
themeEclipse
titleexemplo1test_doc_resourceGetFunctionParmsByAnnotation.tlpp
linenumberstrue
/*
Programa test_doc_resourceGetFunctionParmsByAnnotation.tlpp
*/

#include "tlpp-core.th"

@annotation AnnotationExemplo
    nickname as char
@end
 
User function testeAnnotationu_resourceGetFunctionParmsByAnnotation(@AnnotationExemplo("valor parm1") parm1, @AnnotationExemplo("valor parm2") parm2) 
	conout("funcaoTesteAnnotation")
return
main function usoDeAnnotation
return



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

function u_testGetFunctionParmsByAnnotation()
	local aRetlRet := .F. as logical
	local jRet aRet := {} as array

	lRet := Reflection.getFunctionParmsByAnnotation("exemplo1test_doc_resourceGetFunctionParmsByAnnotation.tlpp", "u_testeAnnotationresourceGetFunctionParmsByAnnotation", aRet@aRet, "AnnotationExemplo")

	conoutif(jRet)
	conout(aRet[1]) //porque tem a annotation no parâmetro 1
	conout(aRet[2]) //porque tem a annotation no parâmetro 2lRet) .and. (valType(aRet) == 'A' .and. len(aRet) > 0)
		conout(lRet)
		aEval(aRet,{|x| conout(x)})
	else
		conout('Não foi possivel encontrar a Annotation com os parametros solicitados')
	endif

return

Resultado do Exemplo

...