Histórico da Página
...
| Pagetitle | ||||
|---|---|---|---|---|
|
Retorna se encontrou Efetua a busca de Annotation em qualquer parâmetro de um métodoum método de um objeto e retorna uma lista com a posição de cada parâmetro onde a Annotation foi encontrada.
Sintaxe
| Bloco de código | ||
|---|---|---|
| ||
Reflection.getMethodParmsByAnnotation( oObjectxParam, cFunctionNamecMethodName, aListParms, cAnnotationName) |
...
Nome | Tipo | Descrição | Obrigatório | Referência | ||
|---|---|---|---|---|---|---|
oObjectxParam** | objeto/caractere** | Objeto instância da classe/nome da classe** proprietário/a** do método onde será procurada Indica o objeto onde está o método que será procurado a Annotation. | X | |||
cPropertyNamecMethodName | caractere | Indica o nome Nome do método onde será procurada a Annotation. | X | |||
aListParms | array | Retorna a lista Lista de parâmetros que contém a Annotation | X | com a posição onde a Annotation foi encontrada. | X | X |
cAnnotationName | caractere | Indica o nome Nome da Annotation que será a ser procurada.X | X |
| Informações | ||
|---|---|---|
| ||
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 |
|---|---|---|
lRet | lógico | Retorna .T. caso encontre algum parâmetro que tenha contenha a Annotation e , caso não encontre .F. caso não tenha |
aListParams | array | Array passada por referência na busca contendo em cada indicie a posição do parâmetro onde a Annotation foi encontrada. Caso não encontre, a array retorna vazia. |
Exemplos
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
@interface AnnotationExemplo NICKNAME #include "tlpp-core.th" @annotation AnnotationGetMethodParmsByAnnotation nickname as char @end Class GetMethodParmsByAnnotation Public Method New() Public Method ParmByAnnotation(@AnnotationGetMethodParmsByAnnotation("annotation parm1") parm1, @AnnotationGetMethodParmsByAnnotation("annotation parm2") parm2) EndClass class MeuObjeto public data data1 public method new() public method teste(@AnnotationExemplo("valorMethod New() class GetMethodParmsByAnnotation Return Self Function u_testGetMethodParmsByAnnotation() Local oObj := GetMethodParmsByAnnotation():New() Local lRet := .F. as logical Local aRet := {} as array lRet := Reflection.GetMethodParmsByAnnotation(oObj, "ParmByAnnotation", @aRet, "AnnotationGetMethodParmsByAnnotation") if lRet Conout(lRet) aEval(aRet,{|x| Conout(x)}) else Conout('Nao foi possivel encontrar nenhuma Annotation com os parametros informados') endIf Return |
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
#include "tlpp-core.th" @annotation AnnotationGetMethodParmsByAnnotation nickname as char @end Class GetMethodParmsByAnnotation Public Method New() Public Method ParmByAnnotation(@AnnotationGetMethodParmsByAnnotation("annotation parm1") parm1, @AnnotationExemplo@AnnotationGetMethodParmsByAnnotation("valorannotation parm2") parm2) EndClass main function usoDeAnnotationMethod New() class GetMethodParmsByAnnotation Return local oObj := MeuObjeto():New() local jRet jRetSelf Function u_testGetMethodParmsByAnnotation() Local lRet := .F. as logical Local aRet := {} as array lRet := Reflection.getMethodParmsByAnnotationGetMethodParmsByAnnotation(oObj"GetMethodParmsByAnnotation", "testeParmByAnnotation", aRet@aRet, "AnnotationExemploAnnotationGetMethodParmsByAnnotation") if lRet Conout(lRet) aEval(aRet,{|x| Conout(x)}) else Conout('Nao conout(jRet) return |
Resultado do Exemplo
valor parm1foi possivel encontrar nenhuma Annotation com os parametros informados')
endIf
Return |
Resultado dos Exemplos
.T.1
2
...
Abrangência
17.3.0.3
Veja também
...