private static String declareProcessInitializeClassForPanier(List<ParametreEntree> paramEntree,List<Proxy> listeProxy){
    StringBuilder sb = new StringBuilder();
    sb.append("/**\n");
    sb.append(" * @see sopra.immobilier.model.AbstractShoppingCartScreenController#processInitializeModel() \n");
    sb.append("*/ \n");
    sb.append("@Override \n");
    sb.append("protected void processInitializeModel() throws ModelException { \n");
    sb.append(" super.processInitializeModel(); \n");
    sb.append("\n");
    sb.append("  final "+name+suffixe+"Function"+" function = ("+name+suffixe+"Function"+") getModel().getCurrentFunctionCall(); \n");
    sb.append("  \n");
    sb.append("  \n");
    
    sb.append(initializeCriteria());
    
    sb.append("\n");
    sb.append("    // \n");
    sb.append("    // ===> RESULTAT DE RECHERCHE \n"); 
    sb.append("    // \n");
    sb.append("    final BaseEntity<"+name+"Bean"+"> listeEntity = new BaseEntity<"+name+"Bean"+">(LISTE_RESULTATS_ENTITY_NAME, \n");
    sb.append("                                                                                                                                     getModel(), \n");
    sb.append("                                                                                                                                     "+name+suffixe+"ScreenController."+name+"Bean.class"+"); \n");
    sb.append("    // On définit l'entité comme étant multi-occurrence \n");
    sb.append("    listeEntity.setDefaultBlockSize(10); \n");
    sb.append("    listeEntity.setEntityEditable(false); \n");
    sb.append("    // Création d'un contrôleur d'entité ESI vacants \n");
    sb.append("    listeEntity.createEntityController(StorageStrategy.RANDOM_READ_SERVICE_BASED, \n");
    sb.append("                                       "+name+"Service.SERVICE_NAME); \n");
    sb.append("    // On définit les tris possibles sur les colonnes \n");
    sb.append("                                       \n");  
    for (Proxy proxy : listeProxy) {
      if (proxy.isTriable()){
        sb.append("    listeEntity.addAvailableSorts(ServiceBasedSort.createDualColumnSort(\""+proxy.getNom()+"\", \""+proxy.getNom()+"\")); \n");
      }
    }

    sb.append("\n");
    sb.append("    listeEntity.getController().getOccurrenceGroupStorageModule().createEmptyOccurrenceGroup(null); \n");
    sb.append("    getModel().setShowSearchResults(true); \n");
    sb.append("    \n");
    sb.append("    // ===> PANIER DE SELECTION \n");
    sb.append("    // On se contente ici de paramétrer le panier \n");
    sb.append("    // \n");
    sb.append("    getShoppingCart().getEntity().setEntityEditable(false); \n");
    sb.append("    getShoppingCartController().setSupportDuplicateItems(false); \n");
    sb.append("    \n");        

    for (Proxy proxy : listeProxy) {
      if (proxy.isTriable()){
        sb.append("    getShoppingCart().getEntity().addAvailableSorts(InMemorySort.createDualColumnSort(\""+proxy.getNom()+"\",new NaturalOrderPropertyComparator<"+name+"Bean"+", String>(\""+proxy.getNom()+"\")).values()); \n");
      }
    }
    
    sb.append(initializeDonneeForPanier());      
    
    boolean ajouterFillShoppingCart=false;
    ParametreEntree paramPanier=null;
    //recuperation des parametres d'entrees
    for (ParametreEntree param : listeParamEntree) {
      //recuperation de la liste du panier contenu dans la fonction de navigation
      if (param.isEntree() && param.getType().contains("List") && !ajouterFillShoppingCart){ //traitement de la premiere liste en entreé pour le panier
       sb.append("// Remplissage du panier avec les demandes en paramètre\n");
       sb.append("\n");
       sb.append("fillShoppingCart();\n");
       ajouterFillShoppingCart=true;
       paramPanier=param;
      }else{
        //Parametre normal
        //@TODO traiter les parametre d'entré normaux
      }
    }
    sb.append("getModel().setShowSearchResults(false);\n");
    sb.append("    \n");        
    sb.append("    \n");      
    sb.append("} \n");
    
    if (ajouterFillShoppingCart){
      sb.append(declareFillShoppingCart(paramPanier));
    }
    
    return sb.toString(); 
  }