Árvore de páginas

Versões comparadas

Chave

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

...

Portuguese
Pagetitle
Classe Method
Classe Method

Classe que representa métodos presentes em uma determinada Classe

Propriedades

Inclusão de trecho
Classe Method - Propriedades
Classe Method - Propriedades
nopaneltrue

Métodos

Inclusão de trecho
Classe Method - Métodos
Classe Method - Métodos
nopaneltrue

Exemplos

Bloco de código
languagecpp
themeEclipse
titleExemplo1.tlpp
linenumberstrue
//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("Instancia executada: " + ::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("Nome do Metodo: " + ObjMethod[1]:cMethodName)
	    conout("Retorno do metodo: " + ret)
	
	     
    ObjMethod := Reflection.getMethodsObjectByAnnotation(obj2, "metodo")
	    ret := ObjMethod[1]:Execute(obj2)
	    conout("Nome do Metodo: " + ObjMethod[1]:cMethodName)
	    conout("Retorno do metodo: " + ret)
 
	    ObjMethod := Reflection.getMethodsObjectByAnnotation(obj1, "metodoComParametro")
	    conout("Nome do Metodo: " + ObjMethod[1]:cMethodName)
	    ret := ObjMethod[1]:Execute(obj1, "parametro 1", "parametro 2")
	    conout("Retorno do metodo: " + ret)
	
	     
    ObjMethod := Reflection.getMethodsObjectByAnnotation(obj2, "metodoComParametro")
	    conout("Nome do Metodo: " + ObjMethod[1]:cMethodName)
	    ret := ObjMethod[1]:Execute(obj2, "parametro 1", "parametro 2")
	    conout("Retorno do metodo: " + ret)
	
return     
return

Retorno do exemplo

Instancia executada: Instancia 1
Nome do Metodo: METODOTESTE
Retorno do metodo: Banana
Instancia executada: Instancia 2
Nome do Metodo: METODOTESTE
Retorno do metodo: Banana
Nome do Metodo: METODOTESTECOMPARAMETROS
-----------------------------------
Instancia:
Instancia 1
Parametros
parametro 1
parametro 2
-----------------------------------
Retorno do metodo: Banana
Nome do Metodo: METODOTESTECOMPARAMETROS
-----------------------------------
Instancia:
Instancia 2
Parametros
parametro 1
parametro 2
-----------------------------------
Retorno do metodo: Banana

Observações:

Disponível a partir da build 17.3.0.7.