/** Ultima atualizacao : 29-06-2001 * Autores : Claudio Copello - 980860 * Joao Porto - 981389 * Joao Guilherme - 981374 * Joyce Ynoue - 981414 * Eduardo Lins - 952302 */ package pckPlano; import pckDemanda.Encomenda; import pckMapa.Trecho; import pckMapa.Mapa; public abstract class Validador { /** Classe que valida o plano de atendimento baseado em * requisicoes de encomendas, lista de veiculos e mapa. */ /** Atributos da classe */ public String mensagemErro = ""; /** Metodos da classe */ public abstract boolean plano( Plano pl, Encomenda[] e, Veiculo[] v, Mapa m ); /** Validacao do plano de atendimento * Saida: Verdadeiro se o Plano de Atendimento e valido. Falso, caso contrario */ public abstract boolean rotas( Rota[] planoRotas, Mapa mapa ); /** Validacao das rotas do Plano de Atendimento * Entrada: Plano de Atendimento, Encomendas e Veiculos * Saida: Verdadeiro se o Plano de Rotas e valido. Falso, caso contrario */ public abstract boolean encomendas( Plano planoAtendimento, Encomenda[] encomendas ); /** Validacao das encomendas do plano de atendimento * Entrada: Plano de Atendimento, Encomendas e Veiculos * Saida: Verdadeiro se o Plano de Atendimento satisfaz as encomendas. Falso, caso contrario */ public abstract boolean capacidade( Plano planoAtendimento ); /** Validacao da capacidade do veiculo * Entrada: Plano de Atendimento, Encomendas e Veiculos * Saida: Verdadeiro se a capacidade e sempre valida. Falso, caso contrario */ public abstract String getMensagemErro(); /** Obtem a mensagem de erro gerada pelos metodos anteriores * Entrada: nenhuma * Saida: Mensagem de erro gerada pelos outros metodos da classe */ public abstract boolean conectTrecho( Rota[] planoRotas, Mapa mapa ); /** Validacao da conectividade dos trechos * Entrada: Plano de Rotas * Saida: Verdadeiro se os trechos sao conexos. Falso, caso contrario */ public abstract boolean conectHorario( Rota[] planoRotas ); /** Validacao da conectividade dos horarios * Entrada: Plano de Rotas * Saida: Verdadeiro se os horarios sao conexos . Falso, caso contrario */ public abstract boolean tempoPercTrechos( Rota[] planoRotas ); /** Validacao do tempo de permanencia em um trecho * Entrada: Plano de Atendimento, Encomendas e Veiculos * Saida: Verdadeiro se o tempo de permanencia eh valido. Falso, caso contrario */ public abstract boolean trechoCargaDescargaEncomenda( Plano planoAtendimento, Encomenda[] encomendas ); /** Validacao se todas as encomendas foram carregadas/descarregadas em um trecho * Entrada: Plano de Atendimento, Encomendas e Veiculos * Saida: Verdadeiro se todas encomendas foram contempladas. Falso, caso contrario */ public abstract boolean horarioCargaDescargaEncomenda( Plano planoAtendimento, Encomenda[] encomendas ); /** Validacao se todas as encomendas foram carregadas/descarregadas no horario * Entrada: Plano de Atendimento, Encomendas e Veiculos * Saida: Verdadeiro se todas as encomendas foram carregadas/descarregadas no horario. Falso, caso contrario */ }