Árvore de páginas

Versões comparadas

Chave

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

...

Retorna um array com o objeto Attribute de cada um dos atributos uma das propriedades que possuem a annotation no Annotation do objeto enviado.

Sintaxe

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

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

oObjxParam**

objeto/caractere**

Objeto na qual instância da classe/nome da classe** onde a busca da Annotation será realizada

X


cAnnotationName 
caractereNome da annotation Annotation a ser procuradaX
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

aRet

Array

Retorna um array com o contendo os objetos do tipo Attribute.

Exemplos

Bloco de código
languagecpp
themeEclipse
titleexemplo1.tlpp
linenumberstrue
#include "tlpp-objectcore.th"

@annotation classe
@end

@annotation attr
@end

@classe() 
Class NovaClasseGetAttributesByAnnotation
 
	  @attr()
	  Public Data TesteAttrcAttr as characterCharacter

	  Public Method New(str)
endclass  
EndClass
 
Method New(str) class NovaClasseGetAttributesByAnnotation
	  ::TesteAttrcAttr := str Returnself


User Function testeNovo()
	local AttrA
	local obj1"initialized"
Return self
 
Function u_testGetAttributesByAnnotation()
  
  Local aAttr as Array
  local obj   as Object

  obj   := NovaClasseGetAttributesByAnnotation():New()
  aAttr := Reflection.getAttributesByAnnotation("Instancia 1")
	
	Conout("-----------------------")
	AttrAobj, "attr")
  ConOut(aAttr[1]:cAttributeName)
  ConOut(aAttr[1]:cAttributeType)
  
Return
Bloco de código
languagecpp
themeEclipse
titleexemplo2.tlpp
linenumberstrue
#include "tlpp-core.th"
 
@annotation attr
@end
 
Class GetAttributesByAnnotation
 
  @attr()
  Public Data cAttr as Character
  Public Method New()
  
EndClass
 
Method New() class GetAttributesByAnnotation
  ::cAttr := "initialized"
Return self
 
Function u_testGetAttributesByAnnotation()
  
  Local aAttr as Array

  aAttr := Reflection.getAttributesByAnnotation(obj1"GetAttributesByAnnotation", "attr")
	Conout(AttrA  ConOut(aAttr[1]:cAttributeName)
	Conout(AttrA  ConOut(aAttr[1]:cAttributeType)
	Conout("-----------------------")
	
Return

...

  
Return

Resultado dos Exemplos

-----------------------
TESTEATTRCATTR
CHARACTER
-----------------------

...