//**************************************************************** // TRABAJO ISBC : INTEGRACION JAVA-JESS. CASO DEL ELEVADOR //**************************************************************** // // Fichero: Piso.java // Autor: // Modificado por: Daniel Urieta Lopez // Proposito: Contiene la clase Piso que representa cada piso // perteneciente al edificio que se simula, y guarda // los ascensores que llegan a el. // //**************************************************************** import java.util.*; import Direccion; public class Piso { //atributos propios de la clase private int id_piso; //Atributos propios de las relaciones private Edificio edificio; private Vector ascensores; public PanelLlamada panel_llamada; public Piso vecino_arriba; public Piso vecino_abajo; public Piso(int id,Edificio E) { id_piso = id; edificio = E; panel_llamada = new PanelLlamada(); ascensores = new Vector(4); } public int GetIdPiso() { return id_piso; } public boolean EsPrimerPiso() { return (vecino_abajo==null); } public boolean EsUltimoPiso() { return (vecino_arriba==null); } public boolean LlamadaPendienteDireccion(int direccion) { Piso vecino; boolean llamada; if (direccion==Direccion.UP) vecino=vecino_arriba; else vecino=vecino_abajo; if (vecino==null) return false; else { llamada=(vecino.panel_llamada.LlamadaPendiente(Direccion.UP) || vecino.panel_llamada.LlamadaPendiente(Direccion.DOWN) ); return (llamada || vecino.LlamadaPendienteDireccion(direccion)); } } public void LlegaAscensor(Ascensor A) { ascensores.addElement(A); } public void SaleAscensor(Ascensor A) { ascensores.removeElement(A); } public Ascensor HayAscensorLibre(int direccion) { Ascensor A; Enumeration enum=ascensores.elements(); while (enum.hasMoreElements()) { A=(Ascensor) enum.nextElement(); if ((A.GetDireccionProgramada()==direccion) ||(A.GetDireccionProgramada()==Direccion.NONE)) return(A); } return(null); } }