Histórico da Página
...
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 | ||
---|---|---|
| ||
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* | caractere | Nome do namespace onde deve ser procurada a Annotation. Obs.: Aqui pode ser feito o uso do caractere * para fazer a busca no namespace | XX |
Retorno
Nome | Tipo | Descrição |
---|---|---|
aRet | Array | Retorna um array com o nome de todas as classes que tem uma determinada annotation. |
...
Array com o resultado da busca pela Annotation.
|
Exemplo:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
//Definicoes das annotation, deve estar num fonte* Programa test_doc_resourceGetClassesByAnnotation1.tlpp */ #include "msobjecttlpp-core.chth" namespace resourceClassesbyAnnotation namespace exemplo @annotation AnnotationExemploAnnotationResource nickname as char @end @AnnotationExemplo@AnnotationResource(nickname = "MeuObject") class Obj1'Resource1') Class resourceClassesbyAnnotation1 Public public method new()data data1 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() retVarMethod New() class resourceClassesbyAnnotation1 Return Self |
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
/*
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 |
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#include "tlpp-core.th" Function u_testGetClassesByAnnotation() Local aRet as array aRet := Reflection.getClassesByAnnotation("AnnotationExemplo", "exemplo.*") //procura por todas as classes do namespace exemplo'AnnotationResource',"resourceClassesbyAnnotation*") if(valType(aRet) <> "U") .and. (valType(aRet) == "A" .and. len(aRet) > 0) conout(retVaraRet[1]:cClassName) conout(retVaraRet[1]:cProgramName) conout(retVaraRet[2]:cClassName) conout(retVaraRet[2]:cProgramName) else conout('Não foi encontrada nenhuma informação de Annotation com os padrões declarados') endif Return cJson |
Resultado do Exemplo
EXEMPLORESOURCECLASSESBYANNOTATION.OBJ1EXEMPLO1RESOURCECLASSESBYANNOTATION1
TEST_DOC_RESOURCEGETCLASSESBYANNOTATION1.TLPP
EXEMPLORESOURCECLASSESBYANNOTATION.OBJ2EXEMPLO1RESOURCECLASSESBYANNOTATION2
TEST_DOC_RESOURCEGETCLASSESBYANNOTATION2.TLPP
Abrangência
17.3.0.3
Veja também
...