Efetua a busca de uma Annotation no método de um objeto, em uma determinada posição de parâmetro.
Sintaxe
Reflection.isAnnotationMethodParamPresent( xParam, cMethodName, nParmPos, cAnnotationName)
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
|---|---|---|---|---|
xParam | objeto/caractere** | Objeto instancia da classe/Nome da classe** proprietário/a do método. | X | |
cMethodName | caractere | Nome do método onde será procurada a Annotation. | X | |
nParmPos | numérico | Posição do parâmetro no método onde será procurada a Annotation. | X | |
cAnnotationName | caractere | Nome da Annotation que será procurada. | X |
Implementaçã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 |
|---|---|---|
lRet | lógico | Retorna .T. caso encontre a Annotation no parâmetro na posição passada, .F. caso não encontre. |
Exemplos
exemplo1.tlpp
@annotation AnnotationIsAnnotationMethodParamPresent
nickname as char
@end
Class IsAnnotationMethodParamPresent
Public Method New()
Public Method ParmAnnotation(@AnnotationIsAnnotationMethodParamPresent("annotation parm1") parm1, @AnnotationIsAnnotationMethodParamPresent("annotation parm2") parm2)
EndClass
Method New() class IsAnnotationMethodParamPresent
Return Self
Function u_testIsAnnotationMethodParamPresent()
Local oObj := IsAnnotationMethodParamPresent():New()
Conout(Reflection.IsAnnotationMethodParamPresent(oObj, "ParmAnnotation", 1, "AnnotationIsAnnotationMethodParamPresent"))
Conout(Reflection.IsAnnotationMethodParamPresent(oObj, "ParmAnnotation", 2, "AnnotationIsAnnotationMethodParamPresent"))
Conout(Reflection.IsAnnotationMethodParamPresent(oObj, "ParmAnnotation", 2, "NoExist"))
Return
exemplo2.tlpp
@annotation AnnotationIsAnnotationMethodParamPresent
nickname as char
@end
Class IsAnnotationMethodParamPresent
Public Method New()
Public Method ParmAnnotation(@AnnotationIsAnnotationMethodParamPresent("annotation parm1") parm1, @AnnotationIsAnnotationMethodParamPresent("annotation parm2") parm2)
EndClass
Method New() class IsAnnotationMethodParamPresent
Return Self
Function u_testIsAnnotationMethodParamPresent()
Conout(Reflection.IsAnnotationMethodParamPresent("IsAnnotationMethodParamPresent", "ParmAnnotation", 1, "AnnotationIsAnnotationMethodParamPresent"))
Conout(Reflection.IsAnnotationMethodParamPresent("IsAnnotationMethodParamPresent", "ParmAnnotation", 2, "AnnotationIsAnnotationMethodParamPresent"))
Conout(Reflection.IsAnnotationMethodParamPresent("IsAnnotationMethodParamPresent", "ParmAnnotation", 2, "NoExist"))
Return
Resultado dos Exemplos
.T.
.T.
.F.
Abrangência
17.3.0.3
Veja também
Import HTML Content
Visão Geral
Conteúdo das Ferramentas