Árvore de páginas

Efetua a pesquisa de uma Annotation a partir de um namespace e retorna um array contendo as informações de onde a Annotation foi encontrada.

Sintaxe

Reflection.getClassesByAnnotation( cAnnotationName,cNamespaceFilter) )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cAnnotationName

caractere

Indica o nome da Annotation que será pesquisada nas classes que estão compiladas no repositório

X


cNamespaceFilter
caractereNome do namespace onde deve ser procurada a Annotation
Obs.: Aqui pode ser feito o uso do caractere para fazer a busca no namespace
           X

Retorno

Nome

Tipo

Descrição

aRet

Array

Array com o resultado da busca pela Annotation.
Em cada posição há um objeto Json com as seguintes propriedades:

  • cClassName -  nome do namespace . classe onde a Annotation pesquisada foi encontrada.
  • cProgramName - nome do programa fonte onde a Annotation pesquisada foi encontrada.

Exemplo:

test_doc_resourceGetClassesByAnnotation.tlpp
/*
Programa test_doc_resourceGetClassesByAnnotation1.tlpp
*/


#include "tlpp-core.th"

namespace resourceClassesbyAnnotation
 
@annotation AnnotationResource
  nickname as char
@end
 
@AnnotationResource(nickname='Resource1')

Class resourceClassesbyAnnotation1
 
  Public data data1

  Public Method New()
  
EndClass

Method New() class resourceClassesbyAnnotation1
Return Self

test_doc_resourceGetClassesByAnnotation2.tlpp
/*
Programa test_doc_resourceGetClassesByAnnotation2.tlpp
*/

#include "tlpp-core.th"

namespace resourceClassesbyAnnotation
 
@annotation AnnotationResource
  nickname as char
@end
 
@AnnotationResource(nickname='Resource2')

Class resourceClassesbyAnnotation2
 
  Public data data1

  Public Method New()
  
EndClass

Method New() class resourceClassesbyAnnotation2
Return Self
testGetClassesByAnnotation.tlpp
#include "tlpp-core.th"
 
Function u_testGetClassesByAnnotation()
  Local aRet as array
 
  aRet := Reflection.getClassesByAnnotation('AnnotationResource',"resourceClassesbyAnnotation*")

  if(valType(aRet) <> "U") .and. (valType(aRet) == "A" .and. len(aRet) > 0)
    conout(aRet[1]:cClassName)
    conout(aRet[1]:cProgramName)
    conout(aRet[2]:cClassName)
    conout(aRet[2]:cProgramName)
  else
    conout('Não foi encontrada nenhuma informação de Annotation com os padrões declarados')
  endif
Return

Resultado do Exemplo

RESOURCECLASSESBYANNOTATION.RESOURCECLASSESBYANNOTATION1
TEST_DOC_RESOURCEGETCLASSESBYANNOTATION1.TLPP
RESOURCECLASSESBYANNOTATION.RESOURCECLASSESBYANNOTATION2
TEST_DOC_RESOURCEGETCLASSESBYANNOTATION2.TLPP  

Abrangência

17.3.0.3

Veja também

  • Sem rótulos