package br.com.ufrj.msi2.netuno.carga.servicos; import java.io.Serializable; import java.util.List; import javax.ejb.Local; import br.com.ufrj.msi2.netuno.modelo.entidades.AgenteCarga; import br.com.ufrj.msi2.netuno.modelo.entidades.Carga; import br.com.ufrj.msi2.netuno.modelo.entidades.Conteiner; import br.com.ufrj.msi2.netuno.modelo.entidades.Navio; import br.com.ufrj.msi2.netuno.modelo.entidades.Porto; @Local public interface GerenciarConteinersService extends Serializable{ /** * Lista os Conteiners de um Porto que t�m espa�o para aloca��o de uma Carga. * @param porto Porto. Porto onde de onde os conteiners ser�o listados. * @return . List<Conteiner>. Lista de conteiners dispon�vels para alca��o de carga. */ public List<Conteiner> listaConteinersDisponiveis(Carga carga,Porto porto); /** * Cria um novo Conteiner no Posto desejado. * @param porto Porto. Porto onde o Conteiner ser� listado. */ public void criarNovoConteiner(Porto porto); /** * Atualiza o peso alocado em um Conteiner. */ public void AtualizaPeso(Conteiner conteiner, double novoPeso); /** * Retorna um Conteiner a partir do seu Id. */ public Conteiner obterPorId(Integer id); /** * Retorna uma lista com todos os Conteiners. */ public List<Conteiner> recuperarTodos(); /** * Retorna uma lista com todos os Conteiners de um Navio. */ public List<Conteiner> recuperarConteinersPorNavio(Navio navio); /** * Retorna uma lista com todos os Conteiners de um Navio que t�m requisi��o de Desembarque para um Agente espec�fico. */ public List<Conteiner> recuperarPorNavioPorAgenteParaDesembarque(Navio navio, AgenteCarga agente); /** * Adiciona um conteiner na lista de conteiners de um navio retirando-o do porto. */ public void embarcarConteiner(Conteiner conteiner, Navio navio); /** * Retira um conteiner da lista de conteiners de um navio colocando-o no porto. */ public void desembarcarConteiner(Conteiner conteiner, Porto porto); }