public void datos() {
    int cod = Rutinas.leeEntero("Introduzca el codigo del procesador: ");
    String desc = Rutinas.leeString("Introduzca la descripcion del procesador: ");

    this.setCodigo(cod);
    this.setDescripcion(desc);
  }
 public void datos() {
   String mar = Rutinas.leeString("Introduce la marca del ordenador: ");
   double prec = Rutinas.leeDoble("Introduce el precio del ordenador: ");
   Procesador proc = new Procesador();
   proc.datos();
   set_marca(mar);
   set_precio(prec);
   this.setProcesador(proc);
 }
  public static int menuAdministrar() {
    int i = 1; // Numero de opciones opciones

    System.out.println("Menu Administracion\n");
    System.out.println("0. Volver");
    System.out.println("1. Beneficios obras");

    return Rutinas.leeEntero(
        "Introduzca la posicion a la que deseea ir", 0, i); // Comprobar el numero de opciones
  }
  public static int menuObras() {
    int i = 3; // Numero de opciones opciones

    System.out.println("Menu Obras\n");
    System.out.println("0. Volver");
    System.out.println("1. Mostrar obras");
    System.out.println("2. Añadir obra");
    System.out.println("3. Eliminar obra");

    return Rutinas.leeEntero(
        "Introduzca la posicion a la que deseea ir", 0, i); // Comprobar el numero de opciones
  }
  public static int menuPrincipal() {
    int i = 4; // Numero de opciones opciones+1

    System.out.println("Menu Principal\n");
    System.out.println("0. Salir");
    System.out.println("1. Gestion Artistas");
    System.out.println("2. Gestion Obras");
    System.out.println("3. Gestion Grupos");
    System.out.println("4. Administrar");

    return Rutinas.leeEntero(
        "Introduzca la posicion a la que deseea ir", 0, i); // Comprobar el numero de opciones
  }
  public static int menuGrupos() {
    int i = 8; // Numero de opciones opciones

    System.out.println("Menu Grupos\n");
    System.out.println("0. Volver");
    System.out.println("1. Mostrar grupos");
    System.out.println("2. Crear grupo");
    System.out.println("3. Eliminar grupo");
    System.out.println("4. Añadir artista");
    System.out.println("5. Añadir obra");
    System.out.println("6. Eliminar artista");
    System.out.println("7. Eliminar obra");
    System.out.println("8. Fijar porcentajes de comisiones");

    return Rutinas.leeEntero(
        "Introduzca la posicion a la que deseea ir", 0, i); // Comprobar el numero de opciones
  }
  public static void main(String[] args) {

    //		Artista a1= new Artista("0001A2","Pepito",1000);
    //		Artista a2= new Artista("0001A3","Potete");
    //		Artista a3= new Artista("0001A4","Nomnomnom");
    //
    //		Obra o1=new Obra("001232A","PEPITIN");
    //		Obra o2=new Obra("001232B","Parrampam");
    //		Obra o3=new Obra("001232C","Ratata");
    //
    //		Vector<Artista> v1=new Vector<Artista>();
    //		v1.add(a1);
    //		v1.add(a2);
    //		v1.add(a3);
    //
    //		Vector<Obra> v2=new Vector<Obra>();
    //
    //		v2.add(o1);
    //		v2.add(o2);
    //		v2.add(o3);
    //
    //		Grupo g=new Grupo("00001","Lospas",v1,v2);
    //
    //		System.out.println(g.toString());

    try {
      File fichA = new File("Artistas.obj");
      File fichO = new File("Obras.obj");
      File fichG = new File("Grupos.obj");

      if (fichA.exists() && fichO.exists() && fichG.exists()) {
        if (fichA.exists()) {
          ObjectInputStream inputArticulos =
              new ObjectInputStream(new FileInputStream("Artistas.obj"));
          artistas = (Vector<Artista>) inputArticulos.readObject();
        }
        if (fichO.exists()) {
          ObjectInputStream inputObras = new ObjectInputStream(new FileInputStream("Obras.obj"));
          obras = (Vector<Obra>) inputObras.readObject();
        }
        if (fichG.exists()) {
          ObjectInputStream inputGrupos = new ObjectInputStream(new FileInputStream("Grupos.obj"));
          grupos = (Vector<Grupo>) inputGrupos.readObject();
        }
      } else {
        System.out.println("Algun fichero no existe, se creara uno nuevo.");
      }

      int posPrincipal = menuPrincipal();
      int posArtistas = 0;
      int posObras = 0;
      int posGrupos = 0;

      while (posPrincipal != 0) {
        switch (posPrincipal) {
          case 0: // Salir del programa
            break;
          case 1: // Switch artistas
            posArtistas = menuArtistas();
            while (posArtistas != 0) {
              switch (posArtistas) {
                case 0: // Volver
                  break;
                case 1: // Mostrar Artistas
                  mostrarVector(artistas);

                  break;
                case 2: // Añadir Artista
                  Artista aux = RutinasAOG.leerArtista();

                  while (comprobarIdA(aux.getIdArtista())) {
                    aux.setIdArtista(
                        Rutinas.leeString("El identificador existe, introduzca otro: "));
                  }

                  artistas.add(aux);

                  break;
                case 3: // Eliminar Artista
                  if (!artistas.isEmpty()) {
                    String id = Rutinas.leeString("Introduzca Identificador del Artista");

                    if (comprobarIdA(id)) {
                      if (RutinasAOG.deseaEliminar("Artista " + id)) {
                        Artista a = obtenerArtista(id);
                        eliminarArtista(a);
                        eliminarArtistasGrupos(a);
                      } else System.out.println("No se ha eliminado " + id);
                    }
                    System.out.println("No existe " + id);
                  } else System.out.println("No hay artistas para eliminar");

                  break;
              }
              posArtistas = menuArtistas();
            }
            break;
          case 2: // Switch obras
            posObras = menuObras();
            while (posObras != 0) {
              switch (posObras) {
                case 0: // Volver
                  break;
                case 1: // Mostrar Obra
                  mostrarVector(obras);
                  break;
                case 2: // Añadir Obra
                  Obra aux = RutinasAOG.leerObra();

                  while (comprobarIdO(aux.getIdObra())) {
                    aux.setIdObra(Rutinas.leeString("El identificador existe, introduzca otro: "));
                  }

                  obras.add(aux);
                  break;
                case 3: // Eliminar Obra
                  if (!obras.isEmpty()) {

                    String id = Rutinas.leeString("Introduzca Identificador de la Obra");

                    if (comprobarIdO(id)) {
                      if (RutinasAOG.deseaEliminar("Obra " + id)) {
                        Obra o = obtenerObra(id);
                        eliminarObra(o);
                        eliminarObrasGrupos(o);
                      } else System.out.println("No se ha eliminado " + id);
                    } else System.out.print("No existe " + id);

                  } else System.out.println("No hay obras para eliminar");

                  break;
              }
              posObras = menuObras();
            }
            break;
          case 3: // Switch Grupos
            String idA;
            String idO;
            String idG;
            Artista aaux;
            Obra oaux;
            Grupo gaux;
            int pos;

            posGrupos = menuGrupos();
            while (posGrupos != 0) {
              switch (posGrupos) {
                case 0: // Volver
                  break;
                case 1: // Mostrar grupos
                  mostrarVector(grupos);
                  break;
                case 2: // Crear Grupo
                  Grupo aux = RutinasAOG.leerGrupo();

                  while (comprobarIdG(aux.getIdGrupo())) {
                    aux.setIdGrupo(Rutinas.leeString("El identificador existe, introduzca otro: "));
                  }

                  grupos.add(aux);

                  break;
                case 3: // Eliminar Grupo
                  if (!grupos.isEmpty()) // Si el vector grupos esta vacio no entra
                  {
                    idG = RutinasAOG.leerIdGrupo("Introduzca Identificador del grupo");
                    pos = 0;

                    pos = buscaIdEnGrupo(idG); // Busca la posicion del grupo en el vector

                    if (comprobarIdG(idG)) {
                      if (RutinasAOG.deseaEliminar(idG)) {
                        grupos.remove(pos);
                        System.out.println("Grupo: " + idG + " eliminado");
                      } else System.out.println("No se ha eliminado " + idG);
                    } else System.out.print("No existe " + idG);
                  } else System.out.println("No hay grupos para eliminar.");

                  break;
                case 4: // Añadir artista
                  if (!grupos.isEmpty()) // Si el vector grupos esta vacio no entra
                  {
                    mostrarIdA();

                    idA =
                        RutinasAOG.leerIdArtista(
                            "Introduzca el identificador del artista que desea introducir: ");

                    aaux = obtenerArtista(idA);

                    mostrarIdG();

                    idG =
                        RutinasAOG.leerIdGrupo(
                            "Introduzca el identificador del grupo al que desea introducir "
                                + idA
                                + ": ");

                    pos = buscaIdEnGrupo(idG); // Busca la posicion del grupo en el vector

                    if (!grupos.get(pos).estaArtista(aaux)) {
                      grupos.get(pos).anyadirArtista(aaux);
                      grupos.get(pos).porcentajesDefecto();
                    } else
                      System.out.println("El artista " + idA + " ya existe en el grupo " + idG);
                  } else System.out.println("No hay grupos disponibles.");

                  break;
                case 5: // Añadir obra
                  if (!grupos.isEmpty()) // Si el vector grupos esta vacio no entra
                  {
                    mostrarIdO();

                    idO =
                        RutinasAOG.leerIdObra(
                            "Introduzca el identificador de la obra que desea introducir: ");

                    oaux = obtenerObra(idO);

                    mostrarIdG();

                    idG =
                        RutinasAOG.leerIdGrupo(
                            "Introduzca el identificador del grupo al que desea introducir "
                                + idO
                                + ": ");

                    pos = buscaIdEnGrupo(idG);

                    if (!grupos.get(pos).estaObra(oaux)) {
                      grupos.get(pos).anyadirObra(oaux);
                    } else System.out.println("La obra " + idO + " ya existe en el grupo " + idG);
                  } else System.out.println("No hay grupos disponibles.");

                  break;
                case 6: // Eliminar artista
                  if (!grupos.isEmpty()) // Si el vector grupos esta vacio no entra
                  {
                    mostrarIdG();

                    idG =
                        RutinasAOG.leerIdGrupo(
                            "Introduzca el identificador del grupo al que desea borrar un artista: ");

                    pos = buscaIdEnGrupo(idG); // Busca la posicion del grupo en el vector

                    if (!grupos
                        .get(pos)
                        .getArtistas()
                        .isEmpty()) // Si el grupo no tiene artistas no entra.
                    {
                      grupos.get(pos).mostrarIdsArtistas();

                      idA =
                          RutinasAOG.leerIdArtista(
                              "Introduzca el identificador del artista que desea eliminar: ");

                      aaux = obtenerArtista(idA);

                      grupos.get(pos).eliminarArtista(aaux);
                      if (!grupos
                          .get(pos)
                          .getArtistas()
                          .isEmpty()) // Si no quedan artistas, no entra.
                      {
                        grupos.get(pos).porcentajesDefecto();
                      }
                    } else
                      System.out.println(
                          "No hay artistas para eliminar en el grupo "
                              + grupos.get(pos).getIdGrupo());
                  } else System.out.println("No hay grupos disponibles.");

                  break;
                case 7: // Eliminar obra
                  if (!grupos.isEmpty()) // Si el vector grupos esta vacio no entra
                  {
                    mostrarIdG();

                    idG =
                        RutinasAOG.leerIdGrupo(
                            "Introduzca el identificador del grupo al que desea borrar un artista: ");

                    pos = buscaIdEnGrupo(idG); // Busca la posicion del grupo en el vector

                    if (!grupos
                        .get(pos)
                        .getObras()
                        .isEmpty()) // Si el grupo no tiene obras, no entra.
                    {
                      grupos.get(pos).mostrarIdsObras();

                      idO =
                          RutinasAOG.leerIdObra(
                              "Introduzca el identificador de la obra que desea eliminar: ");

                      oaux = obtenerObra(idO);

                      grupos.get(pos).eliminarObra(oaux);
                    } else
                      System.out.println(
                          "No hay obras para eliminar en el grupo " + grupos.get(pos).getIdGrupo());
                  } else System.out.println("No hay grupos disponibles.");
                  break;
                case 8: // Fijar porcentajes de comisiones
                  if (!grupos.isEmpty()) // Si el vector grupos esta vacio no entra
                  {
                    mostrarIdG();

                    idG = RutinasAOG.leerIdGrupo("Introduzca el identificador del grupo: ");

                    pos = buscaIdEnGrupo(idG); // Busca la posicion del grupo en el vector

                    if (!grupos
                        .get(pos)
                        .getArtistas()
                        .isEmpty()) // Si en el grupo no hay artistas, no entra.
                    {
                      grupos.get(pos).leerPorcentajes();
                    } else
                      System.out.println(
                          "No hay artistas disponibles para el grupo "
                              + grupos.get(pos).getIdGrupo());
                  } else System.out.println("No hay grupos disponibles.");

                  break;
              }

              posGrupos = menuGrupos();
            }
            break;
          case 4:
            int posAdmn;

            posAdmn = menuAdministrar();

            while (posAdmn != 0) {
              switch (posAdmn) {
                case 0:
                  break;
                case 1:
                  if (!obras.isEmpty()) {
                    mostrarIdO();
                    idO = RutinasAOG.leerIdObra("Introduzca el identificador de la obra");
                    if (comprobarIdO(idO)) {
                      int cantidad =
                          Rutinas.leeEntero(
                              "Introduzca la cantidad de reproducciones de la obra: " + idO,
                              0,
                              999999999);

                      beneficiosObra(idO, cantidad);
                    } else System.out.print("No existe " + idO);
                  } else System.out.println("No hay obras disponibles");
                  break;
              }
              posAdmn = menuAdministrar();
            }
            break;
        }
        posPrincipal = menuPrincipal();
      }
      System.out.println("FIN DE LA EJECUCION");

      // Guarda datos en los archivos.
      ObjectOutputStream outputArtistas =
          new ObjectOutputStream(new FileOutputStream("Artistas.obj"));
      ObjectOutputStream outputObras = new ObjectOutputStream(new FileOutputStream("Obras.obj"));
      ObjectOutputStream outputGrupos = new ObjectOutputStream(new FileOutputStream("Grupos.obj"));

      outputArtistas.writeObject(artistas);
      outputObras.writeObject(obras);
      outputGrupos.writeObject(grupos);

    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
    }
  }
 public void datos() {
   super.datos();
   double panta = Rutinas.leeDoble("Introduce la pantalla del Netbook: ");
   set_pantalla(panta);
 }
 public void datos() {
   super.datos();
   int peso = Rutinas.leeEntero("Introduce el peso del ordenador: ");
   set_peso(peso);
 }