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:

  • metadados são informações (dados) que falam sobre a classe mas não fazem parte da classe em si.
  • Anotações são representadas com o símbolo prefixo (@ arroba). 

Como usar anotações na plataforma Cronapp

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:

  • @CronapiMetaData
  • @ParamMetaData

A anotação @CronapiMetaData contém os seguintes elementos:

TipoElementoValor
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 platformSe o valor definido for "M" significa que a função criada é voltada para plataforma "Mobile", se o valor for "W" para plataforma "Web".
String categoryNamePermite que o usuário final determine uma nova categoria
String[] categoryTagsPalavra(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 nameChave de internacionalização- Nome da função a ser apresentada no bloco de programação.
String[]nameTagsPalavra(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 descriptionChave de internacionalização- Descrição da função
String[]paramsChave 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 displayInlinePermite 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 arbitraryParamsDefine 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)

ObjectTypereturnType

Tipo de retorno da função.

(O tipo de retorno é baseado no enum ObjectType)

CategoryTypecategory

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:

 public enum ObjectType {

    BOOLEAN, LONG, DOUBLE, DATETIME, STRING, LIST, MAP, DATASET, JSON, XML, OBJECT, UNKNOWN, BLOCK, STATEMENT, STATEMENTSENDER, VOID

  }
 
 
 public enum CategoryType {

    IO, DATABASE, FRONTEND, SCREEN, CONVERSION, DATETIME, XML, EMAIL, FTP, JSON, LOGIC, TEXT, LIST, MAP, COLOR, LOOP, MATH, GRID, PRINT, OTHER, OBJECT, SEMAPHORE, UTIL, JSONORMAP, TREE

  }


    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}}"


As chaves de internacionalização não são fixas e podem ser alteradas ou adicionadas quando necessário. Para saber mais acesse: Internacionalização


A anotação @ParamMetaData contém os seguintes elementos:

TIpoElementoValor
ObjectTypetype

Tipo do parâmetro

(O tipo do parâmetro é baseado no enum ObjectType)

StringdefaultValueValor padrão adicionado a um parâmetro de entrada de uma função
StringdescriptionChave de internacionalização- Descrição do parâmetro
String[]keysOpçõ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[]valuesChave 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.