segunda-feira, 27 de outubro de 2014

2014-2 - OdA: Processador de Arquivo Direto

package br.pitagoras.oda.orgarq;

import java.util.List;
import java.util.Map;

import br.pitagoras.oda.orgarq.util.OrgArquivosUtil;

public class ProcessadorDeArquivoDireto extends OrgArquivoAbstrato implements OrgArquivosInterface{

private int tamanho;

public ProcessadorDeArquivoDireto(int tamanho) {
this.tamanho = tamanho;
}

@Override
public RegistroDeArquivo buscar(String chave) {
RegistroDeArquivo reg = null;
try {
Map<String, String> tabelaHash = OrgArquivosUtil.obterMapaRegistrosDiretosDoArquivo(getNomeArquivoDados());
String valor = tabelaHash.get(chave);
if (valor != null && !valor.trim().isEmpty()){
reg = new RegistroDeArquivo(valor);
}
} catch (Exception e) {

}

return reg;
}

@Override
public void inserir(RegistroDeArquivo registro) {
// verificar se o registro já existe na posicao calculada
RegistroDeArquivo reg = buscar(registro.getId());
try {
if (reg != null){ // se sim
//   lancar um erro
System.out.println("error");
} else { // senao
//   inserir na tabela hash
Map<String, String> tabelaHash = OrgArquivosUtil.obterMapaRegistrosDiretosDoArquivo(getNomeArquivoDados());
tabelaHash.put(registro.getId(), registro.obterCampos());
//   salvar a tabela no arquivo
OrgArquivosUtil.escreverMapaRegistrosDiretosEmArquivo(getNomeArquivoDados(), tabelaHash);
}
} catch (Exception e) {
}
}

@Override
public void atualizar(String chave, String valorAtual, String novoValor) {
// obter o registro
RegistroDeArquivo reg = null;
try {
reg = buscar(chave);
if (reg == null){
System.out.println("Error");
} else {
// atualizar o registro
reg.atualizar(valorAtual, novoValor);
// salvar o registro
Map<String, String> tabelaHash = OrgArquivosUtil.obterMapaRegistrosDiretosDoArquivo(getNomeArquivoDados());
tabelaHash.put(chave, reg.obterCampos());
OrgArquivosUtil.escreverMapaRegistrosDiretosEmArquivo(getNomeArquivoDados(), tabelaHash);
}
} catch (Exception e) {

}
}

@Override
public List<RegistroDeArquivo> pesquisar(String valor) {
List<RegistroDeArquivo> registros = pesquisarRegistrosEmArquivoDeDados(valor);


// TODO Auto-generated method stub
return registros;
}

@Override
public void excluir(String chave) {
try {
// buscar a tabela hash
Map<String, String> tabelaHash = OrgArquivosUtil.obterMapaRegistrosDiretosDoArquivo(getNomeArquivoDados());
// verificar se o registro existe
if (tabelaHash.get(chave) == null){
// se nao
//   lancar erro
} else {// senao
//   remover o registro da tabela
String reg = tabelaHash.get(chave);
tabelaHash.remove(reg);
//   salvar a tabela de dados em arquivo
OrgArquivosUtil.escreverMapaRegistrosDiretosEmArquivo(getNomeArquivoDados(), tabelaHash);
}
} catch (Exception e) {
}

}

}

Nenhum comentário:

Postar um comentário