package control;
import dao.CarroDao;
import dao.FabricaDao;
import domain.Carro;
import domain.GrupoCarro;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.Vector;
import util.ConexaoException;
import util.MinhaException;
public class ControladoraCarros {
private Vector<Carro> carros;
private int marc;
private ControladoraGrupoCarro controladoraGrupoCarro = new ControladoraGrupoCarro();
public Vector<Carro> getCarros() {
return carros;
}
public void setCarros(Vector<Carro> carros) {
this.carros = carros;
}
public int getMarc() {
return marc;
}
public void setMarc(int marc) {
this.marc = marc;
}
private void criaObjetoCarro(Carro car, Vector carro, ControladoraGrupoCarro controladoraGrupoCarro){
String placa = carro.get(2).toString();
placa = placa.replaceAll("-", "");
int ano = Integer.parseInt(carro.get(5).toString());
int quilometragem = Integer.parseInt(carro.get(4).toString());
boolean disponivel = Boolean.parseBoolean(carro.get(6).toString());
car.setModelo(carro.get(0).toString());
car.setMarca(carro.get(1).toString());
car.setPlaca(placa);
car.setChassi(carro.get(3).toString());
car.setAno(ano);
car.setDisponivel(disponivel);
car.setQuilometragem(quilometragem);
car.setGrupoCarro(controladoraGrupoCarro.getVetGrupos().get(controladoraGrupoCarro.getMarc()));
}
public Vector montarLinhasCarro(Carro carro)
{
String disponibilidade;
if(carro.getDisponivel())
disponibilidade = "SIM";
else
disponibilidade = "NÃO";
Vector linha = new Vector();
linha.addElement(carro.getCodCarro());
linha.addElement(carro.getModelo());
linha.addElement(carro.getMarca());
linha.addElement(carro.getAno());
linha.addElement(carro.getGrupoCarro().getNomeGrupo());
linha.addElement(carro.getPlaca());
linha.addElement(carro.getChassi());
linha.addElement(disponibilidade);
linha.addElement(carro.getQuilometragem());
return linha;
}
public Vector montarCarroTela(Carro carro){
Vector linha = new Vector();
linha.addElement(carro.getCodCarro());
linha.addElement(carro.getModelo());
linha.addElement(carro.getPlaca());
linha.addElement(carro.getChassi());
linha.addElement(carro.getQuilometragem());
return linha;
}
public void alterarCarro (Vector carro, ControladoraGrupoCarro controladoraGrupoCarro) throws MinhaException, SQLException, ConexaoException{
Carro car = this.carros.get(marc);
this.criaObjetoCarro(car, carro, controladoraGrupoCarro);
CarroDao carroDao = FabricaDao.getCarroDao("JDBC");
carroDao.alterarCarro(car);
}
public void inserirCarro (Vector carro, ControladoraGrupoCarro controladoraGrupoCarro) throws MinhaException, SQLException, ConexaoException{
Carro car = new Carro();
this.criaObjetoCarro(car, carro, controladoraGrupoCarro);
CarroDao carroDao = FabricaDao.getCarroDao("JDBC");
carroDao.inserirCarro(car);
}
public void removerCarro () throws MinhaException, SQLException, ConexaoException{
CarroDao carroDao = FabricaDao.getCarroDao("JDBC");
Carro carro = this.carros.get(marc);
carroDao.removerCarro(carro);
this.carros.remove(marc);
}
public void removerCarrosReservados(){
this.carros.remove(this.marc);
}
public Carro selecionarCarro (Carro carro) {
return null;
}
public Vector<Carro> selecionarTodosCarros () throws MinhaException, SQLException, ConexaoException {
CarroDao carroDao = FabricaDao.getCarroDao("JDBC");
this.carros = carroDao.selecionarTodosCarros();
return carros;
}
public Vector<Carro> obterCarros(GrupoCarro grupoCarro) throws MinhaException, SQLException, ConexaoException{
CarroDao carroDao = FabricaDao.getCarroDao("JDBC");
this.carros = carroDao.selecionarCarrosPorGrupo(grupoCarro);
return carros;
}
public Vector selecionarCarrosPorGrupo(Vector grupo) throws MinhaException, SQLException, ParseException, ConexaoException{
GrupoCarro grupoCarro = new GrupoCarro();
grupoCarro = this.controladoraGrupoCarro.atualizarGrupoCarro(grupo);
Vector<Carro> vetCarros = this.obterCarros(grupoCarro);
Vector linhasCarro = new Vector();
for(int i = 0; i < vetCarros.size(); i++){
Carro car = vetCarros.get(i);
linhasCarro.addElement(this.montarCarroTela(car));
}
return linhasCarro;
}
public Vector obterTodosCarros() throws MinhaException, SQLException, ConexaoException {
Vector<Carro> cs = this.selecionarTodosCarros();
Vector linhasCarros = new Vector();
for(int i = 0; i < cs.size(); i++){
linhasCarros.addElement(this.montarLinhasCarro(this.carros.get(i)));
}
return linhasCarros;
}
}