Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 8 Próxima »

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:

  • cClassName -  nome da classe onde a Annotation pesquisada foi encontrada.
  • cProgramName - nome do programa fonte onde a Annotation pesquisada 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á procurada em todas as classes que estão no repositório

X


cNamespaceFilter*
caractereNome do namespace onde deve ser procurada a AnnotationX

Retorno

Nome

Tipo

Descrição

aRet

Array

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

Exemplos

exemplo1.tlpp
//Definicoes das annotation, deve estar num fonte
#include "msobject.ch" 
namespace exemplo
@annotation AnnotationExemplo
    nickname as char
@end


@AnnotationExemplo(nickname = "MeuObject")
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 cJson

Resultado do Exemplo

EXEMPLO.OBJ1

EXEMPLO1.TLPP
EXEMPLO.OBJ2

EXEMPLO1.TLPP

Abrangência

17.3.0.3

Veja também

  • Sem rótulos