Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fp.grados.tipos;
- import java.util.HashSet;
- import java.util.Iterator;
- import java.util.Set;
- import fp.grados.excepciones.ExcepcionCentroNoValido;
- import fp.grados.excepciones.ExcepcionCentroOperacionNoPermitida;
- public class CentroImpl implements Centro {
- //Atributos
- public String nombre;
- public String direccion;
- public Integer numeroPlantas;
- public Integer numeroSotanos;
- public Set<Espacio> espacios;
- public CentroImpl(String nombre, String direccion, Integer numeroPlantas, Integer numeroSotanos){
- this.nombre = nombre;
- this.direccion = direccion;
- checkPlantas(numeroPlantas);
- checkSotanos(numeroSotanos);
- this.numeroPlantas = numeroPlantas;
- this.numeroSotanos = numeroSotanos;
- this.espacios = new HashSet<Espacio>();
- }
- //CXhecks
- public void checkPlantas(Integer n){
- if (n < 1){
- throw new ExcepcionCentroNoValido("Numero de plantas invalido");
- }
- }
- public void checkSotanos(Integer n){
- if (n < 0){
- throw new ExcepcionCentroNoValido("Numero de sotanos invalido");
- }
- }
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((nombre == null) ? 0 : nombre.hashCode());
- return result;
- }
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- CentroImpl other = (CentroImpl) obj;
- if (nombre == null) {
- if (other.nombre != null)
- return false;
- } else if (!nombre.equals(other.nombre))
- return false;
- return true;
- }
- @Override
- public int compareTo(Centro arg0) {
- // TODO Auto-generated method stub
- return 0;
- }
- @Override
- public String getNombre() {
- return nombre;
- }
- @Override
- public String getDireccion() {
- return direccion;
- }
- @Override
- public Integer getNumeroPlantas() {
- return numeroPlantas;
- }
- @Override
- public Integer getNumeroSotanos() {
- return numeroSotanos;
- }
- @Override
- public void nuevoEspacio(Espacio e) {
- Espacio aux1 = e;
- Integer plantaEspacioE = aux1.getPlanta();
- Integer sotanos = getNumeroSotanos() * -1;
- Integer plantas = getNumeroPlantas() -1;
- if(!(plantaEspacioE <= plantas && plantaEspacioE >= sotanos)) {
- throw new ExcepcionCentroOperacionNoPermitida("Planta para nuevo espacio invalida");
- }
- espacios.add(e);
- }
- @Override
- public void eliminaEspacio(Espacio e) {
- espacios.remove(e);
- }
- @Override
- public Set<Espacio> getEspacios() {
- return espacios;
- }
- @Override
- public String toString() {
- String s;
- s = nombre;
- return s;
- }
- @Override
- public Integer[] getConteoEspacios() {
- Iterator<Espacio> iterador = espacios.iterator();
- Integer teorias = 0;
- Integer laboratorios = 0;
- Integer seminarios = 0;
- Integer examenes = 0;
- Integer otros = 0;
- while (iterador.hasNext()) {
- Espacio aux1 = iterador.next();
- switch (aux1.getTipo()) {
- case TEORIA:
- teorias++;
- break;
- case LABORATORIO:
- laboratorios++;
- break;
- case SEMINARIO:
- seminarios++;
- break;
- case EXAMEN:
- examenes++;
- break;
- case OTRO:
- otros++;
- break;
- default:
- break;
- }
- }
- Integer[] conteo = new Integer[5];
- conteo[0] = teorias;
- conteo[1] = laboratorios;
- conteo[2] = seminarios;
- conteo[3] = examenes;
- conteo[4] = otros;
- return conteo;
- }
- @Override
- public Set<Espacio> getDespachos() {
- Iterator<Espacio> iterador = espacios.iterator();
- Set<Espacio> despachos = new HashSet<Espacio>();
- while (iterador.hasNext()) {
- Espacio aux1 = iterador.next();
- if(aux1.getTipo() == TipoEspacio.OTRO){
- despachos.add(aux1);
- }
- }
- return despachos;
- }
- @Override
- public Espacio getEspacioMayorCapacidad() {
- Iterator<Espacio> iterador = espacios.iterator();
- Set<Espacio> despachos = new HashSet<Espacio>();
- Integer aux = 0;
- Espacio aux2;
- if(this.espacios.isEmpty())
- {
- throw new ExcepcionCentroOperacionNoPermitida("No hay espacios");
- }
- while (iterador.hasNext()) {
- Espacio aux1 = iterador.next();
- if(aux1.getCapacidad() > aux){
- aux2 = aux1;
- }
- }
- return aux2;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement