As classes templates têm como principal objetivo converter a classe entidade, por exemplo, Person para o Diana, a API de nível de comunicação. Essas classes basicamente, são compostas de três componentes:
- Converter: Responsável por realizar conversão da entidade para a API de nível de comunicação
- EntityManager: Como falado anteriormente, o entity manager é a classe responsável por realizar toda a operação de inserção, edição, remoção e recuperação de dados a partir do Diana.
- Workflow: Ao salvar um objeto o Artemis envia 4 eventos, conforme mostra a figura abaixo, sendo que todo esse processo pode ser interceptado com o recurso oriundo do próprio CDI. Esses eventos são interessantes, por exemplo, para validar a informação da entidade antes dela ir para o banco de dados.
Os seis eventos são:
- firePreEntity: O objeto recebido pelo Artemis
- firePreEntityDataBaseType: Semelhante ao anterior, porém, específico para o tipo de banco de dados, ou seja, cada banco terão seu tipo específico de evento.
- firePreAPI: o objeto convertido numa entidade de comunicação
- firePostAPI: A entidade de comunicação enviada como resposta do banco de dados
- firePostEntity: A entidade bean convertida oriunda do firePostAPIAs classes repositórios têm como principal objetivo converter a classe entidade, por exemplo, Person para o Diana, a API de nível de comunicação.
- firePostEntityDataBaseType: Semelhante ao anterior, porém, específico para o tipo de banco de dados, ou seja, cada banco terão seu tipo específico de evento.