/** * 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 pckDemanda.Encomenda; public class RotaImpl extends Rota{ private Veiculo vrota; private Passo[] passos; private int tam; public void RotaImpl(int t) { /** * Construtor da classe * Cria um vetor para conter os passos da rota, com o valor * especificado no construtor; */ this.tam = t; this.passos = new Passo[t]; } public void associarPasso(Passo p, int i) { /** * * Associa um passo a uma posicao i da rota * Entrada: objeto passo a ser associado a esta rota, e o indice * a que deve corresponder na rota * Saida: nenhuma */ this.passos[i] = p; } public Passo[] passos() { /** * Devolve um vetor com todos os passos da rota * Entrada: nenhuma * Saida: vetor de objetos Passo */ int i = 0; Passo[] p = new Passo[this.tam]; for (i=0; i < this.passos.length; i++) p[i] = this.passos[i]; return(p); } public Passo passo(int i) { /** * Devolve um passo especifico da rota * Entrada: indice do passo * Saida: Objeto passo correspondente ao indice recebido */ return(this.passos[i]); } public void associarVeiculo(Veiculo v) { /** * Associa um veiculo a rota * Entrada: objeto veiculo a ser associado a esta rota * Saida: nenhuma */ this.vrota = v; } public Veiculo veiculo() { /** * Devolve o veiculo associado a rota * Entrada: nenhuma * Saida: Objeto veiculo associado a esta rota */ return(this.vrota); } public Passo pertenceEncomendaCarga(Encomenda e) { /** * Se uma dada encomenda e pertence a esta rota, * retorna o passo da rota para o qual esta alocado. * Senao, retorna NULL */ int i = 0; do { if (this.passos[i].pertenceEncomendaCarga(e) == 1) return(this.passos[i]); i++; } while (i <= this.passos.length); return(NULL); } public Passo pertenceEncomendaDescarga(Encomenda e) { /** * Se uma dada encomenda e pertence a esta rota, * retorna o passo da rota para o qual esta alocado. * Senao, retorna NULL */ int i = 0; do { if (this.passos[i].pertenceEncomendaDescarga(e) == 1) return(this.passos[i]); i++; } while (i <= this.passos.length); return(NULL); } }