Árvore de páginas

Classe que representa atributos presentes em determinada Classe

Propriedades


Métodos

Exemplos

Exemplo1.tlpp
//Definicoes das annotation, deve estar num fonte
#include "tlpp-object.th"

@annotation classe
@end

@annotation attr
@end

@classe()
Class NovaClasse

	@attr()
	Public Data TesteAttr as char
	
	Public Method MetodoTeste()

	Public Method New(str)
endclass

Method New(str) class NovaClasse
	::TesteAttr := str
return self

Method MetodoTeste() class NovaClasse
	Conout(::TesteAttr)
return "Banana"


Main Function testeNovo()
	local AttrA
	local obj1 := NovaClasse():New("Instancia 1")
	local obj2 := NovaClasse():New("Instancia 2")
	
	
	Conout("-----------------------")
	AttrA := Reflection.getAttributesByAnnotation(obj1, "attr")
	Conout(AttrA[1]:GetValue(obj1))
	AttrA[1]:Assign(obj1, "Banana1")
	Conout(AttrA[1]:cAttributeName)
	Conout(AttrA[1]:cAttributeType)
	Conout(obj1:TesteAttr)
	Conout("-----------------------")
	Conout("-----------------------")
	AttrA := Reflection.getAttributesByAnnotation(obj2, "attr")
	Conout(AttrA[1]:GetValue(obj2))
	AttrA[1]:Assign(obj2, "Banana2")
	Conout(AttrA[1]:cAttributeName)
	Conout(AttrA[1]:cAttributeType)
	Conout(obj2:TesteAttr)
	Conout("-----------------------")
	
return

Retorno do exemplo

-----------------------
Instancia 1
TESTEATTR
CHAR
Banana1
-----------------------
-----------------------
Instancia 2
TESTEATTR
CHAR
Banana2
-----------------------

Observações:

Disponível a partir da build 17.3.0.7.