public boolean equals(Object otroObjeto) { if (!(otroObjeto instanceof LineaDeTension)) { return super.equals(otroObjeto); } if (otroObjeto == this) { return true; } Conexion otro = (Conexion) otroObjeto; return (costoDeConstruccionPorHectarea == otro.costoDeConstruccionPorHectarea) && // No se pueden comparar hectáreas porque da StackOverflow, entonces se compararan // sólo las posiciones que es lo que importa en este caso ((origen == null && otro.origen == null) || (origen != null && otro.origen != null && origen.getPosicion().equals(otro.origen.getPosicion()))) && ((destino == null && otro.destino == null) || (destino != null && otro.destino != null && destino.getPosicion().equals(otro.destino.getPosicion()))) && (monedero.getDinero() == otro.monedero.getDinero()) && // FIXME issue #19 super.equals(otro); }
// ToDo suena mal la excepción NoHayJuegoIniciado, no se relaciona con construir public void construite(Hectarea origen, Hectarea destino) throws SuperficieInvalidaException, JuegoNoIniciadoException, DineroInsuficienteException, ConstruccionInvalidaExcepcion { validarOrigen(origen); validarDestino(destino); this.origen = origen; this.destino = destino; final int costo = calcularCosto(); try { monedero.quitarDinero(costo); } catch (DineroInsuficienteException e) { this.origen = null; this.destino = null; throw e; } origen.agregarConexion(this); destino.agregarConexion(this); agregadosDeHectarea(origen, destino); ubicacion = origen.getPosicion(); }