| rapport/part/implantation.tex |
| 139 | 139 | |
| 140 | 140 | \section{Package controleur} |
| 141 | 141 | |
| 142 | | % Vérification de la requête |
| 142 | \subsection{Vérification de la requête} |
| 143 | |
| 144 | Avant de transmettre la requête à l'algorithme, on vérifie qu'il ne manque pas certaines informations dans la requête. |
| 145 | \begin{lstlisting} |
| 146 | if(requete.getDepart() == null) |
| 147 | { |
| 148 | erreur += "Station de depart manquante\n"; |
| 149 | } |
| 150 | if(requete.getArrivee() == null) |
| 151 | { |
| 152 | erreur += "Station d'arrivee manquante\n"; |
| 153 | } |
| 154 | \end{lstlisting} |
| 155 | |
| 156 | On va également faire une vérification sommaire pour éviter d'envoyer d'envoyer des contraintes à l'algorithme qui ne mèneront à rien car les temps d'arrêt mènerais en dehors des horaires d'activités du métro |
| 157 | \begin{lstlisting} |
| 158 | int totalHeureArret = 0, totalMinuteArret = 0; |
| 159 | |
| 160 | for(ContraintePosition contrainte : listeEtape.values()) |
| 161 | { |
| 162 | totalHeureArret += contrainte.getHeure(); |
| 163 | totalMinuteArret += contrainte.getMinute(); |
| 164 | } |
| 165 | |
| 166 | totalHeureArret += Math.floor(totalMinuteArret / 60); |
| 167 | totalMinuteArret = totalMinuteArret 60; |
| 168 | |
| 169 | /* On soustrait les 30 minutes de marge */ |
| 170 | |
| 171 | if(requete.getDepart().getMinute() > 30) |
| 172 | totalMinuteArret = totalMinuteArret - 30; |
| 173 | else |
| 174 | totalMinuteArret = 0; |
| 175 | |
| 176 | if((requete.getDepart().getMinute() + totalMinuteArret) > 60) |
| 177 | totalHeureArret += Math.floor(requete.getDepart().getMinute() / 60); |
| 178 | |
| 179 | if((requete.getDepart().getHeure() + totalHeureArret) > 25) |
| 180 | { |
| 181 | erreur += "Le total des temps d'arret aux etapes mene en dehors des horaires d'activite du metro\n"; |
| 182 | } |
| 183 | \end{lstlisting} |
| 184 | |
| 185 | La méthode vérifie également des éléments qui n'ont pas lieu d'être faux à cause des limitations imposé par l'interface graphique, c'est parce qu'elle à été développé avant que l'interface ne soit entièrement définie, et donc certains éléments n'était pas forcément contraint de la même manière à l'origine. |
| 186 | |
| 143 | 187 | % Algo (en partie) |