Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouCatarina Parente Alterado mais de 10 anos atrás
1
Geração de DSLs Vamos criar agora um projeto exemplo que trabalhe não mais com a linguagem DRL, mas sim com DSL (Domain Specific Languages – Linguagens Específicas de Domínio; No Drools, você pode misturar regras escritas em DRL com regras na DSL.
2
Criação de uma nova DSL para o Projeto Crédito
1) Criar uma nova base de regras, com o nome creditodsl;
3
Criação de uma nova DSL para o Projeto Crédito
2) Selecione a opção de utilizar uma DSL, desta vez, a extensão do arquivo será DSLR; rule "Permite Crédito" when $p : Pessoa(idade >= 18) then System.out.println("Crédito Permitido para: " + $p.getNome() ); end rule "Crédito Negado" Pessoa( $nome : nome, idade < 18) System.out.println("Crédito Negado para: " + $nome);
4
Criação de uma nova DSL para o Projeto Crédito
3) Selecionar a pasta de regras e crie um outro recurso;
5
Criação de uma nova DSL para o Projeto Crédito
4) No item Drools, selecionar Domain Specific Language;
6
Criação de uma nova DSL para o Projeto Crédito
5) Criar um arquivo chamado credito.dsl; 6) Este arquivo será responsável por fazer a conversão do formato DSL para o formato da DRL.
7
Criação de uma nova DSL para o Projeto Crédito
7) Observar que o arquivo criado contém uma série de entradas padrão que exemplificam o sistema de templates;
9
Criação de uma nova DSL para o Projeto Crédito
8) Criar as seguintes associações: Decisão: {message} corresponde a System.out.println({message}) e está no escopo de conseqüência; O cliente tem pelo menos {idade} anos corresponde a $p : Pessoa(idade >= {idade}) e está no escopo da condição; O cliente é mais novo que {idade} anos corresponde a Pessoa( $nome : nome, idade < {idade})
10
Criação de uma nova DSL para o Projeto Crédito
11
Criação de uma nova DSL para o Projeto Crédito
12
Criação de uma nova DSL para o Projeto Crédito
13
Criação de uma nova DSL para o Projeto Crédito
9) Colocar a palavra chave expander dentro do arquivo DRL. Ela fará a associação entre a DRL e a DSL;
14
Criação de uma nova DSL para o Projeto Crédito
10) Se preferir, pode continuar usando a DRL, marcando as linhas com >; rule "Permite Crédito" when O cliente tem pelo menos 18 anos then Decisão: "Crédito Permitido para: " + $p.getNome() end rule "Crédito Negado" O cliente é mais novo que 18 anos >System.out.println("Crédito Negado para: " + $nome);
15
Criação de uma nova DSL para o Projeto Crédito
11) Colocar no arquivo que contém o método main, o código abaixo: builder.addPackageFromDrl(new InputStreamReader(CreditoExemplo.class.getResourceAsStream("/creditodsl.dslr")), new InputStreamReader(CreditoExemplo.class.getResourceAsStream("/credito.dsl")));
16
Criação de uma nova DSL para o Projeto Crédito
12) Você pode alterar, também, as palavras chave: Se => when; Então => then
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.