Árvore de páginas

Versões comparadas

Chave

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

...

Pagetitle
Reflection.getDataAnnotation
Reflection.getDataAnnotation

Procura e retorna Efetua a busca de uma Annotation em atribuída a uma propriedade de um objeto.

...

Bloco de código
collapsefalse
Reflection.getDataAnnotation( oObjxParam, cPropertyName, cAnnotationName )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

oObj
xParam**

objeto

Indica o objeto onde será procurado a

/caractere**

Objeto instância da classe/nome da classe** onde será feita a busca da Annotation.

X


cPropertyName 
caractere
Indica o nome
Nome da propriedade onde será procurada a Annotation
X
           X
cAnnotationName 

caractere

Indica o nome

Nome da Annotation que será procurada.

X


Informações
titleimplementação de comportamento

A partir do build 24.3.0.0,também haverá a opção de passar simplesmente o nome da classe em xParam, conforme exemplo 2. Mas continua valendo a passagem da instância do objeto (exemplo 1). 

Retorno

Nome

Tipo

Descrição

jRet

JsonObjectobjeto

Retorna o object Json caso encontre a um objeto do tipo Json  contendo o valor da Annotation na propriedade do objeto passado indicada e NIL caso não encontre.

Exemplos

Bloco de código
languagecpp
themeEclipse
titleexemplo1.tlpp
linenumberstrue
@annotation AnnotationExemplo#include "tlpp-core.th"
 
@annotation DataAnnotation
  nickname as char
@end
 
classClass GetDataAnnotation
  MeuObjeto
@AnnotationExemplo  @DataAnnotation(nickname = "Company")
	public  Public data data1
	public method new
  Public Method New()

EndClass


main function usoDeAnnotation()
	localMethod New() class GetDataAnnotation
Return Self
   
Function u_testGetDataAnnotation()

  Local oObj := MeuObjetoGetDataAnnotation():New()
	local  Local jRet
	if (Reflection.isAnnotationDataPresent
  
  jRet := Reflection.getDataAnnotation(oObj, "data1", "AnnotationExemplo"))
		"DataAnnotation")

  if(valType(jRet) <> 'U')  
    Conout(jRet["nickname"])
  EndIf     

Return
Bloco de código
languagecpp
themeEclipse
titleexemplo2.tlpp
linenumberstrue
#include "tlpp-core.th"
 
@annotation DataAnnotation
  nickname as char
@end
 
Class GetDataAnnotation
  
  @DataAnnotation(nickname = "Company")
  Public data data1

  Public Method New()

EndClass

Method New() class GetDataAnnotation
Return Self
   
Function u_testGetDataAnnotation()

  Local jRet
  
  jRet := Reflection.getDataAnnotation(oObj"GetDataAnnotation", "data1", "AnnotationExemploDataAnnotation")
		conout  if(valType(jRet) <> 'U')  
    Conout(jRet["NICKNAMEnickname"])
	endif

return

...

  EndIf
  
Return

Resultado dos Exemplos

Company

Abrangência

17.3.0.3

...