Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. package fr.univ_amu.iut.reseauferre.traitement.strategiecontroleur;
  2.  
  3. import fr.univ_amu.iut.reseauferre.traitement.LigneFerroviaire;
  4. import fr.univ_amu.iut.reseauferre.traitement.Sillon;
  5. import fr.univ_amu.iut.reseauferre.traitement.Trajet;
  6.  
  7. import java.util.ArrayList;
  8. import java.util.List;
  9.  
  10. /**
  11. * Created by Baptiste on 13/11/2017.
  12. */
  13. public class AttribueurTemps implements AttribueurDeSillon {
  14. @Override
  15. public void attribuerSillon(Trajet trajet) {
  16. List<LigneFerroviaire> lignes = trajet.getLignesExploitees();
  17.  
  18. /**for (LigneFerroviaire l : lignes)
  19. for(Sillon s : l.getSillonsDisponible())
  20. System.out.println(s.getHeure());**/
  21.  
  22. List<Sillon> sillonsDureeMiniFinaux = new ArrayList<>();
  23.  
  24. for (Sillon s : lignes.get(0).getSillonsDisponible()) {
  25. List<Sillon> sillonsDureeMiniTemporaire = new ArrayList<>();
  26. sillonsDureeMiniTemporaire.add(s);
  27. int i = 0;
  28. for (int k = 1; k < lignes.size(); k++) {
  29. int l = 0;
  30.  
  31. while (l < lignes.get(k).getSillonsDisponible().size() && sillonsDureeMiniTemporaire.get(i).getHeure() >= lignes.get(k).getSillonsDisponible().get(l).getHeure())
  32. l += 1;
  33.  
  34. if (l == lignes.get(k).getSillonsDisponible().size())
  35. break;
  36. else
  37. sillonsDureeMiniTemporaire.add(lignes.get(k).getSillonsDisponible().get(l));
  38. i += 1;
  39. }
  40.  
  41. if ((sillonsDureeMiniTemporaire.get(sillonsDureeMiniTemporaire.size() - 1).getHeure() - sillonsDureeMiniTemporaire.get(0).getHeure() + 1) == lignes.size()) {
  42. sillonsDureeMiniFinaux = sillonsDureeMiniTemporaire;
  43. break;
  44. }
  45. else if (!(sillonsDureeMiniTemporaire.size() < lignes.size()) &&((sillonsDureeMiniFinaux.size()) == 0 || ((sillonsDureeMiniFinaux.get(sillonsDureeMiniFinaux.size() - 1).getHeure() - sillonsDureeMiniFinaux.get(0).getHeure()) > (sillonsDureeMiniTemporaire.get(sillonsDureeMiniTemporaire.size() - 1).getHeure() - sillonsDureeMiniTemporaire.get(0).getHeure()))))
  46. sillonsDureeMiniFinaux = sillonsDureeMiniTemporaire;
  47. }
  48.  
  49. if (sillonsDureeMiniFinaux.size() == 0)
  50. System.out.println("Pas de trajet possible");
  51. else {
  52. for (Sillon s : sillonsDureeMiniFinaux) {
  53. s.setDisponible(false);
  54. System.out.println(s.getHeure());
  55. }
  56. }
  57. }
  58.  
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement