/** * 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; public RotaImpl(Veiculo v, int tam) { /** * Construtor da classe * Cria um vetor para conter os passos da rota, com o valor * especificado no construtor; * Entrada : Veiculo v associado a rota e * o numero de passos da rota. */ this.vrota = v; this.passos = new Passo[tam]; } public RotaImpl(Veiculo v, Passo[] p) { /** * Construtor da classe * Cria um vetor para conter os passos da rota, com o valor * especificado no construtor; * Entrada : Veiculo v associado a rota e * um vetor contendo os passos da rota. */ int i = 0; this.passos = new Passo[p.length]; this.vrota = v; for(i=0; i < p.length; i++) this.passos[i] = p[i]; } 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.passos.length]; 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); } }