Árvore de páginas

Retorna um array com objetos do tipo Class das classes que tem uma determinada annotation.

Sintaxe

Reflection.getClassesByAnnotation( cAnnotationName,[cClassNameFilter]) )

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


cClassNameFilter
caractereIndica uma expressão regular para os nomes das classesX

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