Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.univ_amu.iut.reseauferre.traitement.strategiecontroleur;
- import fr.univ_amu.iut.reseauferre.traitement.LigneFerroviaire;
- import fr.univ_amu.iut.reseauferre.traitement.Sillon;
- import fr.univ_amu.iut.reseauferre.traitement.Trajet;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * Created by Baptiste on 13/11/2017.
- */
- public class AttribueurTemps implements AttribueurDeSillon {
- @Override
- public void attribuerSillon(Trajet trajet) {
- List<LigneFerroviaire> lignes = trajet.getLignesExploitees();
- /**for (LigneFerroviaire l : lignes)
- for(Sillon s : l.getSillonsDisponible())
- System.out.println(s.getHeure());**/
- List<Sillon> sillonsDureeMiniFinaux = new ArrayList<>();
- for (Sillon s : lignes.get(0).getSillonsDisponible()) {
- List<Sillon> sillonsDureeMiniTemporaire = new ArrayList<>();
- sillonsDureeMiniTemporaire.add(s);
- int i = 0;
- for (int k = 1; k < lignes.size(); k++) {
- int l = 0;
- while (l < lignes.get(k).getSillonsDisponible().size() && sillonsDureeMiniTemporaire.get(i).getHeure() >= lignes.get(k).getSillonsDisponible().get(l).getHeure())
- l += 1;
- if (l == lignes.get(k).getSillonsDisponible().size())
- break;
- else
- sillonsDureeMiniTemporaire.add(lignes.get(k).getSillonsDisponible().get(l));
- i += 1;
- }
- if ((sillonsDureeMiniTemporaire.get(sillonsDureeMiniTemporaire.size() - 1).getHeure() - sillonsDureeMiniTemporaire.get(0).getHeure() + 1) == lignes.size()) {
- sillonsDureeMiniFinaux = sillonsDureeMiniTemporaire;
- break;
- }
- 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()))))
- sillonsDureeMiniFinaux = sillonsDureeMiniTemporaire;
- }
- if (sillonsDureeMiniFinaux.size() == 0)
- System.out.println("Pas de trajet possible");
- else {
- for (Sillon s : sillonsDureeMiniFinaux) {
- s.setDisponible(false);
- System.out.println(s.getHeure());
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement