Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 2 Atual »

Classe que representa métodos presentes em uma determinada Classe

Propriedades


Métodos

Exemplos

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


@annotation metodo
@end

@annotation metodoComParametro
@end

@annotation classeMetodo
@end

@classeMetodo()
Class NovaClasseMetodo

	Public Data TesteAttr
	
	@metodo()
	Public Method MetodoTeste()

	@metodoComParametro()
	Public Method MetodoTesteComParametros(param1, param2)

	Public Method New(str)
endclass


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

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

Method MetodoTesteComParametros(param1, param2) class NovaClasseMetodo
	Conout("-----------------------------------")
	Conout("Instancia:")
	Conout(::TesteAttr)
	Conout("Parametros")
	Conout(param1)
	Conout(param2)
	Conout("-----------------------------------")
return "Banana"


Main Function testeMetodo()
	local ObjMethod
	local classes
	local obj1
	local obj2
	local ret
	
	classes := Reflection.getClassesByAnnotation("classeMetodo", "") // vazio para pegar todas as classes do repositorio
	
	obj1 := classes[1]:CreateInstance("Instancia 1")
	obj2 := classes[1]:CreateInstance("Instancia 2") 
	
	ObjMethod := Reflection.getMethodsObjectByAnnotation(obj1, "metodo")
	ret := ObjMethod[1]:Execute(obj1)
	conout(ObjMethod[1]:cMethodName)
	conout(ret)
	
	ObjMethod := Reflection.getMethodsObjectByAnnotation(obj2, "metodo")
	ret := ObjMethod[1]:Execute(obj2)
	conout(ObjMethod[1]:cMethodName)
	conout(ret)

	ObjMethod := Reflection.getMethodsObjectByAnnotation(obj1, "metodoComParametro")
	conout(ObjMethod[1]:cMethodName)
	ret := ObjMethod[1]:Execute(obj1, "parametro 1", "parametro 2")
	conout(ret)
	
	ObjMethod := Reflection.getMethodsObjectByAnnotation(obj2, "metodoComParametro")
	conout(ObjMethod[1]:cMethodName)
	ret := ObjMethod[1]:Execute(obj2, "parametro 1", "parametro 2")
	conout(ret)
	
return


Observações:

Disponível a partir da build 17.3.0.7.

  • Sem rótulos