public GrupoProfesor(Grupo grupo, String cedula, String nombre) {
   this.materia = grupo.getMateria();
   this.departamento = grupo.getDepartamento();
   this.facultad = grupo.getFacultad();
   this.numero = grupo.getNumero();
   this.cedula = cedula;
   this.nombre = nombre;
 }
Beispiel #2
0
  public Map<T, Grupo> agrupar(List<Prevencao> prevencoes) {
    Map<T, Grupo> prevencoesPorFoco = new TreeMap<>();

    if (prevencoes == null || prevencoes.isEmpty())
      throw new IllegalStateException("Prevencoes não pode ser null ou vazia");

    Grupo prevencoesAgrupadas = null;

    for (Prevencao prevencao : prevencoes) {
      T key = this.comoSeparar(prevencao);

      if (prevencoesPorFoco.containsKey(key)) {
        prevencoesAgrupadas = prevencoesPorFoco.get(key);
        prevencoesAgrupadas.add(prevencao);
      } else {
        prevencoesAgrupadas = this.comoAgrupar();
        prevencoesAgrupadas.add(prevencao);

        prevencoesPorFoco.put(key, prevencoesAgrupadas);
      }
    }

    return prevencoesPorFoco;
  }
  public static void beneficiosObra(String idO, int cantidad) {
    for (int i = 0; i < grupos.size(); i++) {
      if (grupos.get(i).estaObra(obtenerObra(idO))) // Para aquellos grupos con la obra idO
      {
        Grupo gaux = grupos.get(i);
        for (int j = 0; j < gaux.getArtistas().size(); j++) // Para todos los artistas del grupo
        {
          double comisionO =
              cantidad
                  * gaux.getObras().get(gaux.getObras().indexOf(obtenerObra(idO))).getComision();
          double derechos = ((gaux.getPorcentajesArtistas().get(j) / 100) * comisionO);
          Artista aaux = gaux.getArtistas().get(j);
          aaux.cobrarDerechos(derechos);

          for (int z = 0; z < artistas.size(); z++) // Para el vector de los artistas
          {
            if (artistas.get(z).getIdArtista().equals(aaux.getIdArtista())) {
              artistas.get(z).cobrarDerechos(derechos);
            }
          }
        }
      }
    }
  }
  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();
    }
  }