Skip to content

Commit f0f8e06

Browse files
Usando interface TecnologiaLinconesInterface para atualizar o provedor de LinConEs em Liquido.
1 parent 88cd329 commit f0f8e06

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

fontes/lincones-sqlite.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import { AvaliadorSintatico } from "./comum/fontes/avaliador-sintatico";
33
import { Lexador } from "./comum/fontes/lexador";
44
import { ClienteSQLite } from "./infraestrutura/cliente-sqlite";
55
import { RetornoComando } from "./infraestrutura";
6-
import { Comando } from "./comum/fontes";
6+
import { Comando, TecnologiaLinconesInterface } from "./comum/fontes";
77

8-
export class LinconesSQLite {
8+
export class LinconesSQLite implements TecnologiaLinconesInterface {
99
lexador: Lexador;
1010
avaliadorSintatico: AvaliadorSintatico;
1111
tradutor: TradutorSqLite;
@@ -15,7 +15,10 @@ export class LinconesSQLite {
1515
this.lexador = new Lexador();
1616
this.avaliadorSintatico = new AvaliadorSintatico();
1717
this.tradutor = new TradutorSqLite();
18-
this.clienteSQLite = new ClienteSQLite();
18+
}
19+
20+
iniciar(caminho: string): void {
21+
this.clienteSQLite = new ClienteSQLite(caminho);
1922
}
2023

2124
async executarComando(comando: Comando) {
@@ -30,14 +33,15 @@ export class LinconesSQLite {
3033
* @returns
3134
*/
3235
async executar(_: any, sentencaLincones: string, parametros: any[] = []): Promise<RetornoComando[]> {
36+
const parametrosNaoNulos = parametros || [];
3337
const resultadoLexador = this.lexador.mapear([sentencaLincones]);
3438
const resultadoAvaliacaoSintatica = this.avaliadorSintatico.analisar(resultadoLexador);
3539

3640
if (resultadoAvaliacaoSintatica.erros.length > 0) {
3741
throw new Error(`Erros encontrados na avaliação de comandos: ${resultadoAvaliacaoSintatica.erros.reduce((mensagens, erro) => mensagens += erro.message + '; ', '')}.`);
3842
}
3943

40-
return await this.executarInterno(resultadoAvaliacaoSintatica.comandos, parametros);
44+
return await this.executarInterno(resultadoAvaliacaoSintatica.comandos, parametrosNaoNulos);
4145
}
4246

4347
private async executarInterno(comandos: Comando[], parametros: any[]): Promise<RetornoComando[]> {

0 commit comments

Comments
 (0)