package traitement;
import java.util.*;

/**
 * 
 */
public class Controleur {

    /**
     * Default constructor
     */
    public Controleur(int nbAscenseur, int nbEtage) {
    	this.ascenseurs=new Ascenseur[nbAscenseur];
    	Constante.setNbAscenseur(nbAscenseur);
    	Constante.setNbEtage(nbEtage);
    	this.requetes= new Vector<RequeteExterne>();
    }

    /**
     * 
     */
    private Ascenseur ascenseurs[];

    /**
     * 
     */
    private Vector<RequeteExterne> requetes;




    /**
     * @param int etage 
     * @param String direction
     */
    public void creerRequeteExterne(int etage, String direction) {
        // TODO implement here
    	this.requetes.add(new RequeteExterne(etage, direction));
    }

    /**
     * @param Ascenseur ascenseur
     */
    public void choisirAscenseur(Ascenseur ascenseur) {
        // TODO implement here
    	for(RequeteExterne r : this.requetes){
    		Ascenseur ascenceurChoisie=null;
    		for(Ascenseur a : this.ascenseurs){
    			if(r.getDirection()==a.getEtat()){
    				for (Etage e : a.getEtages()){
    					if (etagesEgaux(e, r.getEtage())){
    						if(r.getDirection()=="Dessend" && etageUnPlusPetit(r.getEtage(),a.getEtageCourant()){
    							ascenceurChoisie=a;
    						}
    						else if (r.getDirection()=="Monter" && r.getEtage().compareTo(a.getEtageCourant())>0){
    							ascenceurChoisie=a;
    						}
    					}
    				}
    			}
    			else if (ascenceurChoisie==null && a.getEtat()=="Immobile Fermer"){
    				ascenceurChoisie=a;
    			}
    		}
    		ascenceurChoisie.ajouterRequete(r);
    	}
    }
    private boolean etagesEgaux(Etage e1, Etage e2){
		
    	return e1.compareTo(e2)==0;
    	
    }
    private boolean etageUnPlusPetit(Etage e1, Etage e2){
    	return e1.compareTo(e2)<0;
    }
    private boolean etageUnPlusGrand(Etage e1, Etage e2){
    	return e1.compareTo(e2)>0;
    }

}

@@ -1152,15 +1152,18 @@
 )==%22
-Dess
+desc
 end
+ant
 %22 &&
@@ -1209,24 +1209,25 @@
 geCourant())
+)
 %7B%0A    %09%09%09%09%09%09
@@ -1301,19 +1301,37 @@
 )==%22
-Monter
+montant
 %22 && 
+etageUnPlusGrand(
 r.ge
@@ -1338,27 +1338,17 @@
 tEtage()
-.compareTo(
+,
 a.getEta
@@ -1359,18 +1359,16 @@
 urant())
-%3E0
 )%7B%0A    %09
@@ -1397,32 +1397,49 @@
 =a;%0A    %09%09%09%09%09%09%7D%0A
+    %09%09%09%09%09%09break;%0A
     %09%09%09%09%09%7D%0A    %09
@@ -1512,23 +1512,21 @@
 )==%22
-I
+i
 mmobile
- 
 Ferme
-r
 %22)%7B%0A
@@ -1699,26 +1699,29 @@
 n e1.compare
-To
+Etage
 (e2)==0;%0A   
@@ -1805,26 +1805,29 @@
 n e1.compare
-To
+Etage
 (e2)%3C0;%0A    
@@ -1912,10 +1912,13 @@
 pare
-To
+Etage
 (e2)

Update Controleur.java