Ejemplo n.º 1
0
  /*Controlamos los comandos introducidos por pantalla
  Comprueba que los comandos son correctos
  Maneja excepciones en casos determinados
  */
  public static void introducirComando() {
    Scanner entradaPantalla = null;
    String comando = "";
    boolean comandoValido = false;
    int numeroTokens = 0;

    String accion = "";
    String entidad = "";
    String codigo = "";
    String comandoCapturado = "";
    StringBuilder sb = null;

    try {
      do {

        /* Leemos el comando introducido por teclado */
        System.out.println("Introducir comando: ");
        entradaPantalla = new Scanner(System.in);

        // Almacenamos el comando en la variable comando
        comando = entradaPantalla.nextLine();

        // calculamos el numero de tokens en que está dividido el
        // comando introducido, el separador es el espacio
        numeroTokens = Utilidades.obtenerNumeroDeTokens(comando);

        accion = Utilidades.capturarComando(comando, 1);
        entidad = Utilidades.capturarComando(comando, 2);
        codigo = Utilidades.capturarComando(comando, 3);
        //			System.out.println("Accion: " + accion);
        //			System.out.println("Entidad: " + entidad);
        //			System.out.println("Codigo: " + codigo);

        sb = new StringBuilder("");
        sb.append(accion);
        sb.append(" ");
        sb.append(entidad);
        comandoCapturado = sb.toString().trim();

        // Comprobamos el nº de palabras que tiene el comando introducido
        if (numeroTokens <= 2) {
          if (Utilidades.compruebaString(comandoCapturado, Constantes.LISTA_COMANDOS)) {
            comandoValido = true;
            if (comandoCapturado.equalsIgnoreCase(Constantes.CREAR_CLIENTE)) {
              Cliente.crearCliente();
            } else if (comandoCapturado.equalsIgnoreCase(Constantes.ELIMINAR_CLIENTE)) {
              Cliente.eliminarCliente();
            } else if (comandoCapturado.equalsIgnoreCase(Constantes.LISTAR_CLIENTES)) {
              Cliente.listarClientes();
            } else if (comandoCapturado.equalsIgnoreCase(Constantes.CREAR_MUSICA)) {
              Musica.crearMusica();
            } else if (comandoCapturado.equalsIgnoreCase(Constantes.ELIMINAR_MUSICA)) {
              Musica.eliminarMusica();
            } else if (comandoCapturado.equalsIgnoreCase(Constantes.LISTAR_MUSICA)) {
              Musica.listarMusica();
            } else if (comandoCapturado.equalsIgnoreCase(Constantes.CREAR_VENTA)) {
              Venta.crearVenta();
            } else if (comandoCapturado.equalsIgnoreCase(Constantes.ELIMINAR_VENTA)) {
              Venta.eliminarVenta();
            } else if (comandoCapturado.equalsIgnoreCase(Constantes.LISTAR_VENTAS)) {
              Venta.listarVentas();
            } else if (comandoCapturado.equalsIgnoreCase(Constantes.CREAR_VENDEDOR)) {
              Vendedor.crearVendedor();
            } else if (comandoCapturado.equalsIgnoreCase(Constantes.ELIMINAR_VENDEDOR)) {
              Vendedor.eliminarVendedor();
            } else if (comandoCapturado.equalsIgnoreCase(Constantes.LISTAR_VENDEDORES)) {
              Vendedor.listarVendedores();
            }
          }
        }

        // Si el comando tiene 3 palabras verificamos que es correcto y ejecutamos los borrados con
        // codigo
        if (numeroTokens == 3) {
          if (Utilidades.compruebaString(comandoCapturado, Constantes.LISTA_COMANDOS)) {
            comandoValido = true;
            if (comandoCapturado.equalsIgnoreCase(Constantes.ELIMINAR_CLIENTE)) {
              Cliente.eliminarCliente(Integer.parseInt(codigo));
            } else if (comandoCapturado.equalsIgnoreCase(Constantes.ELIMINAR_MUSICA)) {
              Musica.eliminarMusica(Integer.parseInt(codigo));

            } else if (comandoCapturado.equalsIgnoreCase(Constantes.ELIMINAR_VENTA)) {

              Venta.eliminarVenta(Integer.parseInt(codigo));

            } else if (comandoCapturado.equalsIgnoreCase(Constantes.ELIMINAR_VENDEDOR)) {
              Vendedor.eliminarVendedor(Integer.parseInt(codigo));
            }
          }
        }

      } while (!comandoValido);
    } // Manejamos la excepcion en caso de que el dato introducido sea erróneo
    catch (NumberFormatException nfe) {
      System.out.println("No ha introducido un número válido");
      introducirComando();
    }

    // Controlamos y procesamos el caso en que se introduzca el comando CERRAR
    if (comando.equalsIgnoreCase(Constantes.CERRAR)) {
      // Antes de cerrar volcaremos los datos que tenemos en memoria sobre los vendedores y las
      // ventas a su fichero de texto correspondiente
      try {
        // Llamamos a las funciones que almacenan los datos en ficheros
        Vendedor.guardarCambios();
        Venta.guardarCambios();

      }
      // Controlamos las excepciones que se pueden producir al manejar el fichero de texto
      catch (IOException ioe) {
        System.out.println(
            "# Se ha producido un error al procesar el fichero de vendedores, los cambios no se han guardado");
      }

      System.out.println("# Gracias por su visita");
      // Salimos de la ejecución del programa
      System.exit(0);
    }
  }