Árvore de páginas

Versões comparadas

Chave

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

...

Efetua a pesquisa de uma Annotation a partir de um namespace e retorna um array onde, em cada posição há um objeto Json com as seguintes propriedades:

...

contendo as informações de onde a Annotation

...

foi encontrada.

...

Sintaxe

Bloco de código
collapsefalse
Reflection.getClassesByAnnotation( cAnnotationName,cNamespaceFilter) )

...

Nome

Tipo

Descrição

Obrigatório

Referência

cAnnotationName

caractere

Indica o nome da Annotation que será procurada em todas as 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

Retorna um array com o nome de todas as classes que tem uma determinada annotation.

...

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:

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


#include "msobjecttlpp-core.chth"

namespace resourceClassesbyAnnotation
namespace exemplo
@annotation AnnotationExemploAnnotationResource
    nickname as char
@end
 

@AnnotationExemplo@AnnotationResource(nickname = "MeuObject"='Resource1')
class Obj1
    public method new()
EndClass

@AnnotationExemplo(nickname = "10")
class Obj2
    public method new()
EndClass


method new() class Obj2
return self

method new() class Obj1
return self


Main Function Exemplo()
    retVar := Reflection.getClassesByAnnotation("AnnotationExemplo", "exemplo.*") //procura por todas as classes do namespace exemplo
    conout(retVar[1]:cClassName)
    conout(retVar[1]:cProgramName)
    conout(retVar[2]:cClassName)
    conout(retVar[2]:cProgramName)
    
Return cJsonClass resourceClassesbyAnnotation1
 
  Public data data1

  Public Method New()
  
EndClass

Method New() class resourceClassesbyAnnotation1
Return Self

Resultado do Exemplo

EXEMPLO.OBJ1

...