Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/6062824/tecnologia.css |
Pagetitle | ||||
---|---|---|---|---|
|
Efetua a busca de uma Annotation no método de um objeto, em uma determinada posição de parâmetro.Verifica se existe uma Annotation para um determinado parâmetro de uma função
Sintaxe
Bloco de código | ||
---|---|---|
| ||
Reflection.isAnnottationMethodParamPresentisAnnotationMethodParamPresent( oObjectxParam, cFunctionNamecMethodName, nParmPos, cAnnotationName) |
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
oObjectxParam | objetoIndica o objeto onde está o método que será procurado a Annotation/caractere** | Objeto instancia da classe/Nome da classe** proprietário/a do método. | X | |
cPropertyNamecMethodName | caractere | Indica o nome da função Nome do método onde será procurada a Annotation. | X | |
nParmPos | numérico | Indica a posição Posição do parâmetro no método onde será procurada a Annotation. | XX | |
cAnnotationName | caractere | Indica o nome Nome da Annotation que 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 a Annotation e no parâmetro na posição passada, .F. caso não encontre. |
Exemplos
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
@interface@annotation AnnotationExemplo NICKNAMEAnnotationIsAnnotationMethodParamPresent nickname as char @end Class IsAnnotationMethodParamPresent Public Method New() class Public MeuObjeto public data data1 public method new() public method teste(@AnnotationExemplo("valor parm1") parm1, @AnnotationExemplo("valor parm2") parm2) EndClass main function usoDeAnnotation() local oObj := MeuObjeto():New() local jRet conout(Reflection.isAnnottationMethodParamPresent(oObj,"testeMethod 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 |
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
@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, "AnnotationExemploAnnotationIsAnnotationMethodParamPresent")) conoutConout(Reflection.isAnnottationMethodParamPresentIsAnnotationMethodParamPresent(oObj"IsAnnotationMethodParamPresent", "testeParmAnnotation", 2, "AnnotationExemploAnnotationIsAnnotationMethodParamPresent")) conoutConout(Reflection.isAnnottationMethodParamPresentIsAnnotationMethodParamPresent(oObj"IsAnnotationMethodParamPresent", "testeParmAnnotation", 2, "AnnotationExemploErroNoExist")) return Return |
Resultado
...
dos Exemplos
.T.
.FT.
.F.
Abrangência
17.3.0.3