/** Método que se encarga de guardar los datos de la baraja en la memoria del movil */ public void guardaRMS() { try { gestor.guardarBaraja(this); } catch (Exception e) { e.printStackTrace(); } }
/** * Es el contructor de la nueva baraja.<br> * Según el valor del parámetro creará una baraja vacía o una con los valores almacenados en los * registros persistentes. Esto es debido a que si la aplicación está intentando recibir los datos * desde el PC, no habrá ninguna carta almacenada en los registros persistentes * * @param vacia Indica si debe crear una baraja vacía o formada por las cartas almacenadas en el * dispositivo móvil * @param raza Description of Parameter * @param propietario Description of Parameter */ public BarajaMovil(boolean vacia, String raza, String propietario) { gestor = new GestorRMS(); version = -1; if (!vacia) { try { numeroCartas = gestor.leerNumeroCartas(); baraja = gestor.leerBaraja(); // Aquí pediria al gestor de RMS que leyera toda la baraja version = gestor.leerVersion(); this.raza = gestor.leerRaza(); this.propietario = gestor.leerPropietario(); } catch (Exception e) { System.out.println("Error al leer las cartas en el constructor de BarajaMovil"); System.out.println(e.toString()); e.printStackTrace(); } } else { baraja = new Hashtable(); this.raza = raza; this.propietario = propietario; } }
/** * Añade una nueva carta a la baraja y a los registros presistentes en caso de que así se indique. * <br> * Si una carta igual ya está en la baraja aumenta la cardinalidad de la carta pero no añade otro * objeto a la Hashtable (más que nada porque no se puede ;-p) * * @param nueva Es la carta que se va a añadir a la baraja * @param refleja Indica si este cambio en la baraja debe reflejarse en el almacenamiento RMS o no * @return true - si ha podido añadirse<br> * false - en caso contrario */ public boolean añadeCarta(CartaMovil nueva, boolean refleja) { try { Integer codigo = new Integer(nueva.getCodigoID()); if (baraja.containsKey(codigo)) { ((CartaMovil) baraja.get(codigo)).aumentaNumero(); numeroCartas++; if (refleja) { gestor.guardarBaraja(this); } return true; } else { if ((nueva.getRaza().equals(raza)) || (nueva.getNivel().equals("3"))) { baraja.put(new Integer(nueva.getCodigoID()), nueva); if (nueva.getversionBaraja() > version) { version = nueva.getversionBaraja(); } numeroCartas++; if (refleja) { gestor.guardarBaraja(this); } return true; } else { System.out.println( "no acepta la carta " + nueva.toShortString() + "\nla raza de la baraja es " + raza + " y la de la carta " + nueva.getRaza()); return false; } } } catch (Exception e) { System.out.println("Error al añadir la carta en añadeCarta"); e.printStackTrace(); return false; } }
/** * Quita la carta especificada de la baraja y los registros persistentes teniendo en cuenta que * puede estar repetida * * @param codigo El código de la carta a eliminar * @param refleja Description of Parameter */ public void eliminaCarta(int codigo, boolean refleja) { try { Integer cod = new Integer(codigo); if (((CartaMovil) baraja.get(cod)).disminuyeNumero()) { baraja.remove(new Integer(codigo)); } numeroCartas--; if (refleja) { gestor.guardarBaraja(this); } } catch (Exception e) { System.out.println("Error al eliminar la carta en eliminaCarta"); e.printStackTrace(); } }