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; }
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(); } }