Histórico da Página
...
Pagetitle | ||||
---|---|---|---|---|
|
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 | ||
---|---|---|
| ||
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 | caractere | Indica 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.
|
Exemplos
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
//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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#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
...