Anotações (annotations) têm o objetivo de possibilitar a declaração de metadados ao longo do código que podem ser posteriormente interpretadas por um compilador ou pré-compilador que irá realizar alguma tarefa predefinida. As anotações evitam, em muitos casos, a criação de arquivos XML de configuração que tornam tão difícil a compreensão de alguns sistemas. Anotações podem ser utilizadas, por exemplo, para indicar que um método não deve mais ser usado (@Deprecated
) ou que ele foi sobrescrito (@Override
).
Nos exemplos citados, é importante que fique claro que a presença de anotações não influem no comportamento da classe ou de seus objetos, mas sim adicionam funcionalidades anexas a uma determinada classe.
Observações:
As anotações na plataforma Cronapp podem ser aplicadas nos seguintes casos: Declaração de métodos, classes, interfaces, parâmetros e enumerações.
Existem duas anotações principais que podem ser referenciadas e utilizadas em classes do tipo Java, são elas:
A anotação @CronapiMetaData contém os seguintes elementos:
Tipo | Elemento | Valor |
---|---|---|
String | type | Se o valor definido for "function" a função criada fica visível no bloco de programação, se "internal" a função fica disponível apenas de forma interna via código. |
String | platform | Se o valor definido for "M" significa que a função criada é voltada para plataforma "Mobile", se o valor for "W" para plataforma "Web". |
String | categoryName | Permite que o usuário final determine uma nova categoria |
String[] | categoryTags | Palavra(s)-chave utilizada(s) para auxiliar a busca de categorias de funções dentro do bloco de programação. Esse elemento pode receber mais de um valor. |
String | name | Chave de internacionalização- Nome da função a ser apresentada no bloco de programação. |
String[] | nameTags | Palavra(s)-chave utilizada(s) para auxiliar a busca de funções dentro do bloco de programação. Esse elemento pode receber mais de um valor. |
String | description | Chave de internacionalização- Descrição da função |
String[] | params | Chave de internacionalização: Descrição sobre o(s) parâmetro(s) de entrada da função. Esse elemento pode receber mais de um valor. |
boolean | displayInline | Permite que os parâmetros da função no bloco de programação sejam passados, por padrão, em apenas uma linha ao invés de passados de forma individual, uma linha por parâmetro no bloco da função. |
boolean | arbitraryParams | Define se a função poderá receber parâmetros além dos definidos durante sua criação no momento da utilização desta no bloco. |
ObjectType[] | paramsType | Tipo do(s) parâmetro(s) de entrada da função. Esse elemento pode receber mais de um valor. (O tipo do parâmetro é baseado no enum ObjectType) |
ObjectType | returnType | Tipo de retorno da função. (O tipo de retorno é baseado no enum ObjectType) |
CategoryType | category | Tipo de categoria a qual a função faz parte. (O tipo do categoria é baseado no enum CategoryType) |
Os elementos ObjectType e CategoryType são do tipo enumeradores (enum) definidos respectivamente a seguir:
|
Exemplo do código de uma função utilizando alguns elementos da anotação @CronapiMetaData
As chaves de internacionalização ficam contidas em um arquivo de extensão ".properties". Arquivos desse tipo podem ser utilizados para armazenar parâmetros do tipo string no formato (chave=valor). Para utilização das chaves de internacionalização durante a criação de componentes de software na IDE Cronapp coloca-se a chave desejada entre chaves duplas, como por exemplo: description = "{{functionToQueryInDatasource}}"
|
A anotação @ParamMetaData contém os seguintes elementos:
TIpo | Elemento | Valor |
---|---|---|
ObjectType | type | Tipo do parâmetro (O tipo do parâmetro é baseado no enum ObjectType) |
String | defaultValue | Valor padrão adicionado a um parâmetro de entrada de uma função |
String | description | Chave de internacionalização- Descrição do parâmetro |
String[] | keys | Opções de valores a serem adicionados num parâmetro de entrada do tipo seletor vertical(dropdown). Esse elemento pode receber mais de um valor. |
String[] | values | Chave de internacionalização: Valores a serem passados para função de acordo com a opção selecionada(keys) no seletor vertical(dropdown) do parâmetro da função. Esse elemento pode receber mais de um valor. |