Árvore de páginas

Versões comparadas

Chave

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

...

Pagetitle
Reflection.getFunctionsByAnnotation
Reflection.getFunctionsByAnnotation

Retorna um array com o nome de todas as funções que tem uma determinada annotationEfetua a busca de uma Annotation em funções a partir do namespace.

Sintaxe

Bloco de código
collapsefalse
Reflection.getFunctionsByAnnotation( cAnnotationName,[cFunctionNameFiltercNamespaceNameFilter]) )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cAnnotationName

caractere

Indica o nome Nome da annotation Annotation que será procurada em todas as classes funções que estão no repositório

X


cFunctionNameFiltercNamespaceNameFilter
caractereIndica uma expressão regular para os nomes das classesda namespace.
Obs.: É possivel a utilização do caracter coringa  para setar o nome da namespace para busca.
           XX

Retorno

Nome

Tipo

Descrição

aRet

Array

array

Array multidimensional Retorna um array de arrays com o nome dos fontes e das funções que tem uma determinada annotation.contém a Annotation procurada.
Em cada posição da array temos as seguintes informações:

  • aRet[1][1] = Programa fonte onde foi encontrada a Annotation
  • aRet[1][2] = Namespace . Função onde foi encontrada a Annotation

Exemplos

Bloco de código
languagecpp
themeEclipse
titleexemplo1test_doc_resourceGetFunctionsByAnnotation.tlpp
linenumberstrue
//Definicoes das annotation, deve estar num fonte*
Programa test_doc_resourceGetFunctionsByAnnotation.tlpp
*/

#include "msobjecttlpp-core.chth" 

namespace exemplonamespaceGetFunctionsByAnnotation

@interface@annotation AnnotationExemplo
resourceExemplo as char
@end

@AnnotationExemplo(resourceExemplo='Valor de  nickname as char
@end
Exemplo1')
function u_resourceGetFunctionsByAnnotation1()
return

@AnnotationExemplo(resourceExemplo='Valor de Exemplo2')
function u_resourceGetFunctionsByAnnotation2()
return

@AnnotationExemplo(nickname = "MeuObject")
main Function AnnotationTeste()
	conout("AnnotationTeste")
Return

Main Function Exemplo()
    retVarresourceExemplo='Valor de Exemplo3')
function u_resourceGetFunctionsByAnnotation3()
return
Bloco de código
languagecpp
themeEclipse
titletest_doc_getFunctionsByAnnotation.tlpp
linenumberstrue
#include "tlpp-core.th"

function u_testGetFunctionsByAnnotation()
	local aRet := {} as array

	aRet := Reflection.getFunctionsByAnnotation("AnnotationExemplo", "exemplonamespaceGetFunctionsByAnnotation.*" )

	if(valType(aRet) //procura por todas as classes do namespace exemplo
    varinfo("retVar", retVar)
    
Return cJson

Resultado do Exemplo

retVar -> ARRAY ( 2) [...]

retVar[1] -> ARRAY ( 2) [...]

retVar[1][1]  C ( 12) [EXEMPLO.TLPP]

retVar[1][2]  C ( 12) [EXEMPLO.OBJ1]

retVar[2] -> ARRAY ( 2) [...]

retVar[2][1]  C ( 12) [EXEMPLO.TLPP]

== 'A' .and. len(aRet) > 0)
		aEval(aRet,{|x| aEval(x,{|y| conout(y)})})
	else
		conout('Nao foi possivel encontrar a Annotation com os parametros solicitados')
	endif

return

Resultado do Exemplo

aRet[1][2] - TEST_DOC_RESOURCEGETFUNCTIONSBYANNOTATION.TLPP
aRet[1][2] - NAMESPACEGETFUNCTIONSBYANNOTATION.U_RESOURCEGETFUNCTIONSBYANNOTATION1


aRet[2][1] - TEST_DOC_RESOURCEGETFUNCTIONSBYANNOTATION.TLPP
aRet[2][2] - NAMESPACEGETFUNCTIONSBYANNOTATION.U_RESOURCEGETFUNCTIONSBYANNOTATION2


aRet[3][1] - TEST_DOC_RESOURCEGETFUNCTIONSBYANNOTATION.TLPP
aRet[3][2] - NAMESPACEGETFUNCTIONSBYANNOTATION.U_RESOURCEGETFUNCTIONSBYANNOTATION3retVar[2][2]  C ( 12) [EXEMPLO.OBJ2]

Abrangência

17.3.0.3

Veja também

...