package pckEngenho;

import pckPlano.*;
import pckDemanda.Encomenda;
import pckMapa.*;
import pckGerador.*;

public class EngenhoImpl {

    private Plano plano;
    private Veiculo[] aVeiculos;
    private Encomenda[] aEncomendas;
    private String veiculosPath;
    private String encomendasPath;
    private String trechosPath;

		
    public EngenhoImpl(String veicPath, String encPath, String trecPath) {
	setVeiculosPath(veicPath);
	setEncomendasPath(encPath);
	setTrechosPath(trecPath);
	processa();
    }

     /**
	Path do arquivo Veiculo
     */	
    public void setVeiculosPath(String novoVeiculosPath) {
	veiculosPath = novoVeiculosPath;
    }
	
    /**
	Path do arquivo Encomendas
     */
    public void setEncomendasPath(String novoEncomendasPath) {
	encomendasPath = novoEncomendasPath;
    }

     /**
	Path do arquivo Trechos
     */	
    public void setTrechosPath(String novoTrechosPath) {
	trechosPath = novoTrechosPath;
    }

    /**
       A partir do path indicado pela interface, carrega o
    */
    private Veiculo[] carregaVeiculos() {
	Leitura lv = new Leitura ();
	aVeiculos = lv.carregarVeiculo(this.veiculosPath);
    }
	
    private Encomenda[] carregaEncomendas() {
	Leitura le = new Leitura();
	aEncomendas = le.carregarEncomenda(this.encomendasPath);
    }
    
    private void carregaTrechos() {
	
    }

    /**
       A partir das informacoes fornecidas ao Engenho (arquivos de entrada)
       inicia um estado para utilizacao da interface com um plano calculado
       para estes arquivos de entrada
    */
    private void processa() {

        Plano plano;

        Veiculo[] aVeiculos = this.carregaVeiculos();
        Encomenda[] aEncomendas = this.carregaEncomendas();
	Mapa mapa = new Mapa(this.trechosPath);

	Gerador gerador = new Gerador(); 

	plano = gerador.gera(aVeiculos, aEncomendas, mapa);       
    }
}









