Exemplo n.º 1
0
  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);
  }
Exemplo n.º 2
0
  // 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();
  }