/** * Grupo T - MC726 * Componentes: * Flavia Garcia Poly RA:981191 * Jocelen Correa da Silva RA:981390 * Priscilla Sanches Marques RA:981944 * Ruth Fabiana Leite Vieira RA:982116 * Sergio Ricardo Martelo RA:982141 * Roberto Akira RA:963150 */ package pckPlano; import pckMapa.Trecho; import pckDemanda.Encomenda; import java.util.Date; import java.util.Vector; public class PassoImpl extends Passo { /** * Classe que define a estrutura de um Passo. * * - Um Passo e' o indice de um trecho em uma rota. */ protected Trecho trechoPasso; protected IntervaloData intervaloPasso; protected int quantcarga; protected int quantdescarga; protected Encomenda[] encCarregar; protected Encomenda[] encDescarregar; /** * Construtor da Classe */ public PassoImpl(int qcarga, int qdescarga) { this.quantcarga = qcarga; this.quantdescarga = qdescarga; Encomenda[] encCarregar = new Encomenda[quantcarga]; Encomenda[] encDescarregar = new Encomenda[quantdescarga]; } /** * Devolve um objeto com o intervalo de tempo em que esse passo deve * ser executado. * Entrada: nenhuma * Saida: Objeto IntervaloData */ public IntervaloData intervalo() { return intervaloPasso; } public Encomenda[] carrega() { /** * Devolve um vetor com todas as encomendas a serem carregadas nesse. * passo. * Entrada: nenhuma. * Saida: vetor de objetos Encomenda a serem carregados. */ int i = 0; Encomenda[] v = new Encomenda[this.quantcarga]; for (i=0; i < this.encCarregar.length; i++) v[i] = this.encCarregar[i]; return v; } public Encomenda[] descarrega() { /** * Devolve um vetor com todas as encomendas a serem descarregadas. * nesse passo. * Entrada: nenhuma. * Saida: vetor de objetos Encomenda a serem descarregados. */ int i = 0; Encomenda[] v = new Encomenda[this.quantdescarga]; for (i=0; i < this.encDescarregar.length; i++) v[i] = this.encDescarregar[i]; return v; } public Trecho trecho() { /** * Devolve o trecho associado a este passo. * Entrada: nenhuma. * Saida: objeto trecho associado a este passo. */ return this.trechoPasso; } public void carregarEncomenda(Encomenda e) { /** * Insere uma encomenda na relacao de encomendas a serem carregadas * nesse passo da rota. * Entrada: objeto encomenda a ser incluida. * Saida: nenhuma. */ this.encCarregar[this.encCarregar.length] = e; } public void descarregarEncomenda(Encomenda e) { /** * Insere uma encomenda na relacao de encomendas a serem descarregadas * nesse passo da rota. * Entrada: objeto encomenda a ser incluida. * Saida: nenhuma. */ this.encDescarregar[this.encDescarregar.length] = e; } public void associarTrecho(Trecho t) { /** * Associa um trecho a este passo. * Entrada: trecho a ser associado. * Saida: nenhuma. */ this.trechoPasso = t; } public void associarIntervaloData(IntervaloData t) { /** * Associa um intervalo de tempo a este passo. * Entrada: intervalo a ser associado. * Saida: nenhuma. */ this.intervaloPasso = t; } public int pertenceEncomendaCarga(Encomenda e) { /** * Verifica se uma dada encomenda esta associada ao passo, para * ser carregada. * Entrada : Um objeto do tipo encomenda * Saida : 1, se a encomenda pertencer ao passo; 0, cc. */ int i = 0; do { if (e == this.encCarregar[i]) return(1); i++; } while(i <= this.encCarregar.length); return(0); } public int pertenceEncomendaDescarga(Encomenda e) { /** * Verifica se uma dada encomenda esta associada ao passo, para * ser descarregada. * Entrada : Um objeto do tipo encomenda * Saida : 1, se a encomenda pertencer ao passo; 0, cc. */ int i = 0; do { if (e == this.encDescarregar[i]) return(1); i++; } while(i <= this.encDescarregar.length); return(0); } }