Partage
  • Partager sur Facebook
  • Partager sur Twitter

Liste from List en java

    17 janvier 2020 à 12:12:50

    Bonjour, 

    j'explique le contexte : 

    methode 1 : recuperer liste menu autorisé pour un agent connecté  => OK

    methode 2 : recuperer liste de GroupMenu de la BDD  => ok 

    methode 3 : recupere liste de menu par GroupMenu => ok   

    la regle de gestion a changé dernièrement et je dois evoluer le besoin 

    Ce qui est demandé : 

    au lieu de alimenter la liste des menus a partir de GroupMenu . Je dois alimenter GroupMenu par liste de menu autorisée au utilisateur 

    pour eviter d'afficher de menu que l'agent n'a pas initialement l'acces 

    voici une partie de mon code 

    [code]

    public void initialiserGroupMenuParMenuAutorisee() throws Exception {

    getModele().setCritereGroupMenu(null);

    final Long idAgent = getIdAgent();

    List < String > domaines = getCoordination().rechercherGroupMenu();  // recuper tout les GroupMenu disponible ( en tout j'en ai que 6 ) 

    List < SelectItem > selectItems = new ArrayList <>();

    List <Menu> menus = recupererMenusAutorisee(idAgent);

    if ( menus.isEmpty()){

    errorPage();

    }else 

    {

            for (GroupMenu menu : menus) {

          - parcourir liste de menu 

                                  - voir le group menu dedié a ce menu 

                                  - ajouter ce groupMenu dans une liste selectItems

                                  - sinon passe au suivant 

             }

    getVue().setGroupMenuListe(selectItems);  => ceci va alimenter ma lise deroulante dans mon IHM 

    }

    }

    [code]

    • Partager sur Facebook
    • Partager sur Twitter
      17 janvier 2020 à 18:18:33

      Bonsoir,

      Mets ton code dans </> tout d'abord.

      Ensuite sois plus simple dans ton explication, personnellement je comprends pas.

      -
      Edité par Asmitta 17 janvier 2020 à 18:18:54

      • Partager sur Facebook
      • Partager sur Twitter
        20 janvier 2020 à 9:30:40

        public void initialiserGroupMenuParMenuAutorisee() throws Exception {
        
        getModele().setCritereGroupMenu(null);
        
        final Long idAgent = getIdAgent();
        
        List < String > domaines = getCoordination().rechercherGroupMenu();  // recuper tout les GroupMenu disponible ( en tout j'en ai que 6 ) 
        
        List < SelectItem > selectItems = new ArrayList <>();
        
        List <Menu> menus = recupererMenusAutorisee(idAgent);
        
        if ( menus.isEmpty()){
        
        errorPage();
        
        }else 
        
        {
        
                for (GroupMenu menu : menus) {
        
              - parcourir liste de menu 
        
                                      - voir le group menu dedié a ce menu 
        
                                      - ajouter ce groupMenu dans une liste selectItems
        
                                      - sinon passe au suivant 
        
                 }
        
        getVue().setGroupMenuListe(selectItems);  => ceci va alimenter ma lise deroulante dans mon IHM 
        
        }
        
        }


        Bonjour , j'explique ma question . 

        - l'application contient un certain menus 

        - pour une personne connectée : il a une liste x des groupMenu + menu ( groupMenu est un ensemble de menu ) 

        - cette personne a droit qu'une partie selon ses droits predefinis 

        - j'ai une methode qui recupere tout les groupMenu de la BD , une methode : recupere Menu par group de Menu 

        - mon objectif est filtrer le menu et les afficher selon les menus autorisés . 

        - autrement dit : G1 { menu1 , menu2 , menu3} , G2{menu4 , menu5} , G3 {menu6, menu7 , menu8} 

        cette personne a droit au : menu1 , menu2 , menu6 ====> je dois afficher sur G1 , G3 

        - si la personne n' a droit a aucun menu , je dois afficher un message significatif ( VOUS N'AVEZ PAS LES DROIT A ACCEDER ) et je lui donne un url pour retourner a la page d'accueil 

        </>

        public void initialiserGroupMenuParMenuAutorisee() throws Exception {

        getModele().setCritereGroupMenu(null);

        final Long idAgent = getIdAgent();

        List < String > domaines = getCoordination().rechercherGroupMenu();  // recuper tout les GroupMenu disponible ( en tout j'en ai que 6 ) 

        List < SelectItem > selectItems = new ArrayList <>();

        List <Menu> menus = recupererMenusAutorisee(idAgent);

        if ( menus.isEmpty()){

        errorPage();

        }else 

        {

                for (GroupMenu menu : menus) {

              - parcourir liste de menu 

                                      - voir le group menu dedié a ce menu 

                                      - ajouter ce groupMenu dans une liste selectItems

                                      - sinon passe au suivant 

                 }

        getVue().setGroupMenuListe(selectItems);  => ceci va alimenter ma lise deroulante dans mon IHM 

        }

        }

        </>

        -
        Edité par GazouilleVM 20 janvier 2020 à 9:31:53

        • Partager sur Facebook
        • Partager sur Twitter
          20 janvier 2020 à 9:48:16

          Ton explication n'est pas très claire, et je crains surtout qu'on ne t'aide pas en te donnant une réponse toute faite.

          • Est-ce que c'est un exercice, ou tu es en entreprise ?
          • Tu as essayé quelque chose ? (Si la réponse est non, alors n'attends plus rien de moi !)
          • Qu'est-ce qui ne marche pas dans ce que tu as essayé ?
          • Partager sur Facebook
          • Partager sur Twitter
            20 janvier 2020 à 10:10:12

            pour une application entreprise :) 

            desolé si je n'arrive pas a expliquer ce que je veux . je tente encore une fois . :( 

            j'ai une base de données : pour faire simple 

            Table1 : Menu  a 4 colonne sans id pourquoi , je ne sais pas !! 

            col1 : GroupMenu , col2 Menu , col2 codeMenu , col4 : traitement 

            un groupe de menu est un ensemble de menu , un menu est ensemble de traitemnt , codeMenu est associé a chaque Menu 

            dans cette table j'ai 6 GroupMenu exactement ( ils sont fixe ) , et j'ai 50 menu en total qui peut etre augmenter un jour , mais il sera toujours associé a un groupe de Menu . 

            une personne connecté au portail a droit a certain Menu , selon son profil 

            une seule personne a droit a TOUT 

            Dans mon code : 

            methode 1 : recuperer tout menus OK , 

            methode 2 : recuperer menuParGroupDeMenu OK 

            methode 3 : recuperer MenuPourAgentConnecté OK 

            methode 4 : recuperer ListGroupMenu OK

            Ma question comment je peux recuperer liste de groupMenu a partir de List MenuPourAgentConnecté ??? 

            • Partager sur Facebook
            • Partager sur Twitter
              20 janvier 2020 à 10:18:55

              Ma question à moi n'est pas (tellement) de savoir ce que tu veux faire : tu l'as déjà expliqué.
              Ma question est plutôt de savoir dans quel mesure tu maîtrises le problème à résoudre, les données disponibles et le langage Java.

              À te lire, j'ai l'impression d'avoir affaire à un débutant, ne serait-ce que parce qu'il manque des éléments essentiels pour répondre à ta question. Et plutôt que de te les demander moi-même, de t'écrire le code et de te donner un poisson, je préfère t'apprendre directement à pêcher. :magicien:

              Donc : qu'as-tu commencé à faire pour résoudre ton problème ? Ensuite on verra comment on peut l'améliorer ou le déboguer.

              • Partager sur Facebook
              • Partager sur Twitter
                20 janvier 2020 à 10:40:32

                Merci :) 

                Voici mon code , ou plutôt l'idée que j'ai implémenté 

                public List < Menu > recupererMenusAutorisee(final Long idAgent) throws FonctionnelleException {
                		List < Menu > applications = new ArrayList <>();
                		final Long idUaf = getIdUaf();
                		try {
                
                			menus= getCoordination().rechercherMenusAgent(idAgent, idUaf);
                		} catch (FonctionnelleException e) {
                
                			LOGGER.info("ERROR ", e);
                		}
                
                		return menus;
                	}

                la partie oû je suis vraiment bloquée : 

                public List <String> recupererGroupParMenusAutorisees() throws FonctionnelleException{
                		
                		 
                		final Long idAgent = (Long) getAttributSession(ID_AGENT);
                		final Long idUaf = (Long) getAttributSession(ID_UAF);
                		String groupMenu = null ; 
                		boolean autorisee = false ;
                		String group = null;  
                		List<String> groupMenus = new ArrayList<>();
                                List<String> selectItems = new ArrayList<>();
                		List<Menu> menus = getCoordination().rechercherApplicationsAgent(idAgent, idUaf);
                		
                		try {
                			if ( menus.isEmpty()) {
                				retourPAccueil();
                			}
                			else {
                				List<String> menusAgent = getCoordination().rechercherApplicationsParDomaine(group);
                				List < String > menuParGroupMenu = getCoordination().rechercherMenusParGroupMenu(group);
                				
                				for ( Menu menu : menus){
                                                         if ( group="Group Menu 1 ") {
                                                             List<String> groupMenus= new ArrayList<String>(applications);
                   
                
                                                             common.retainAll(applicationAgent);
                                                               }
                					selectItems.add(menusAgent)
                				}
                			}
                			
                		} catch (Exception e) {
                			LOGGER.info("ERROR ", e);
                			ajoutMessageErreur(e, IMessages.MSG_INFO_NON_AUTORISEE);
                		}
                		return selectItems ;
                	}




                • Partager sur Facebook
                • Partager sur Twitter
                  20 janvier 2020 à 11:33:52

                  OK alors on y va. Je constate déjà qu'il y a beaucoup de changements par rapport à ton premier code, donc il va falloir repartir de l'objectif de ton algorithme et purger tout ce qui est inutile.

                  1°) Le schéma principal de ton algorithme :

                  NahlaVilla a écrit:

                  G1 { menu1 , menu2 , menu3} , G2{menu4 , menu5} , G3 {menu6, menu7 , menu8} 

                  cette personne a droit au : menu1 , menu2 , menu6 ====> je dois afficher sur G1 , G3

                  Si je comprends bien, il suffit de :

                  • parcourir les GroupMenus
                  • regarder si le GroupMenu est associé à un menu auquel l'agent est autorisé
                  • si oui, ajouter ce GroupMenu à selectItems.

                  On peut aussi faire comme ça :

                  • parcourir les menus auxquels l'agent a accès
                  • rechercher le GroupMenu contenant ce menu
                  • ajouter le GroupMenu à selectItems.

                  La différence entre les deux est de savoir s'il est plus facile d'accéder au GroupMenu depuis le menu, ou d'accéder au menu depuis le GroupMenu. Je crois deviner mais je te laisse étudier la question.
                  Si les deux sont aussi faciles l'un que l'autre, il vaut mieux utiliser le deuxième algorithme (parce qu'on n'est pas obligé de parcourir tous les menus et GroupMenus, mais seulement ceux qui nous intéressent).

                  Qu'est-ce que tu choisis ?

                  2°) Ce qu'il faut purger/rectifier dans le code

                  • le vocabulaire :
                    menus contient le résultat de rechercherApplicationsAgent,
                    tandis que
                    menusAgent contient le résultat de rechercherApplicationsParDomaine.
                    Les noms des variables ne correspondent pas aux noms des méthodes, du coup le lecteur (moi, tes collègues... ou toi !) ne sait pas vraiment ce qu'elles contiennent.
                    Choisis des noms parlants, et surtout qui soient en cohérence avec les données référencées.

                  • group, groupMenus, groupMenu, menus, menusAgents, menuParGroupMenu. Ca fait 6 variables avant de commencer la boucle (Je ne compte pas la variable menu qui est dans la boucle, ni de applications dont on ne sait pas d'où elle sort).
                    Si tu suis un des deux algorithmes ci-dessus, pour démarrer tu devrais n'avoir besoin que :
                    - des menus de l'agent
                    - et de la correspondance entre menus et GroupMenus.
                    Donc uniquement deux variables avant le for. Tu supprimes tout le reste.
                    Tu retrouveras peut-être certaines de ces variables en écrivant la boucle for, mais au moins tu sauras pourquoi tu les utilises.

                  • Pourquoi tester les GroupMenu manuellement un par un, comme tu le fais ici ?
                    if ( group="Group Menu 1 ") {
                    Les boucles servent à faire à parcourir des objets. Dis à Java comment faire, plutôt que de lui tenir la main sur chaque GroupMenu en particulier.

                  • Ta variable groupMenus est définie deux fois. Pire que ça : elle est déclarée deux fois (List<String> ...), ce qui doit provoquer une erreur.
                    Si tu as décidé de ce qu'elle doit contenir, ne le change pas en cours de route.

                  • Ton bloc if ne décide rien du tout qui soit en relation avec le résultat (ajouter ou non un GroupMenu à selectItems).
                    C'est comme regarder la météo pour trouver l'âge du capitaine.
                    Ca ne répond pas à la question : ce GroupMenu doit-il être ajouté ou pas ?
                    Le code que tu écriras sous la boucle for doit traiter la question et rien d'autre. C'est à ça que tu dois aboutir en te lançant dans un des deux algorithmes vus au 1°.

                  -
                  Edité par Zachee54 20 janvier 2020 à 11:36:01

                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 janvier 2020 à 11:56:13

                    Merci pour ta reponse : 

                    Je vais partir sur CAS 2 : 

                    On peut aussi faire comme ça :

                    • parcourir les menus auxquels l'agent a accès
                    • rechercher le GroupMenu contenant ce menu
                    • ajouter le GroupMenu à selectItems.

                    ( desolée pour le nommage : application = menu en faite ) 

                    On revient a cet algorithme 

                    voici mon idée : 

                    public List < Menu > recupererMenusAutorisee(final Long idAgent) throws FonctionnelleException {
                    		List < Menu > menus = new ArrayList <>();
                    	
                    		final Long idUaf = getIdUaf();
                    		try {
                    
                    			menus = getCoordination().rechercherMenusAgent(idAgent, idUaf);
                    		} catch (FonctionnelleException e) {
                    
                    			LOGGER.info("ERROR ", e);
                    		}
                    
                    		return menus;
                    	}
                    
                    	public List < String > recupererGroupMenuParMenusAutorisees() throws FonctionnelleException {
                    
                    		final Long idAgent = (Long) getAttributSession( ID_AGENT);
                    		final Long idUaf = (Long) getAttributSession( ID_UAF);
                                    List<String> selectItems = new ArrayList<>();
                    		String groupMenu = null;
                    		// boolean autorisee = false ;
                    		 
                    
                    		List < String > groupMenus =  getCoordination().rechercheListGroupMenu();
                    		List < Menu > menus = getCoordination().rechercherMenusAgent(idAgent, idUaf);
                                    
                    		try {
                    			List < String > applicationParGroupMenu = getCoordination().rechercherMenusParGroupMenu(groupMenu);
                    			if (menus.isEmpty()) {
                    				retourPortail();
                    			} else {
                    				 for ( Menu menu : menus ) {
                    				      
                    					  for ( String group : groupMenus  ) 
                    					  {
                    					       boolean isCommen = Collections.disjoint(menus , applicationParGroupMenu );
                                                                     if ( isCommen == false)
                    
                    						   selectItems.add(group);
                    					  }
                    					       
                    			}
                    
                    		} catch (Exception e) {
                    			LOGGER.info("ERROR ", e);
                    			ajoutMessageErreur(e, IMessages.MSG_INFO_NON_AUTORISEE);
                    		}
                    		return selectItems;
                    	}

                    merci par avance 

                    • Partager sur Facebook
                    • Partager sur Twitter
                      20 janvier 2020 à 14:11:50

                      1°) Cette fois, je fais une petite parenthèse sur la méthode recupererMenusAutorisee les exceptions.

                      N'initialise pas la variable menus avec ArrayList vide, si c'est pour la remplacer aussitôt après par le résultat de rechercherMenusAgent. Ca revient à créer un objet pour rien.
                      Initialise l'objet à null, et renvoie une ArrayList vide seulement en cas d'exception, c'est-à-dire dans le bloc catch.

                      Enlève la clause throws dans la signature de la méthode, puisqu'elle ne lève jamais d'exception : en cas d'exception, elle fait un log et renvoie une liste vide.

                      Évite ça à tout prix :

                      } catch (Exception e) {

                      C'est une source inépuisable de bugs, parce que le compilateur ne te signalera pas toutes les erreurs inattendues qui peuvent survenir ici. Attrape seulement les exceptions qui devraient pouvoir survenir d'après toi.

                      2°) Pour l'algorithme, c'est déjà mieux.

                      Je suis quand même étonné que tu aies choisi le deuxième algo, alors que ta méthode rechercherMenusParGroupMenu te donne accès aux menus quand tu connais le GroupMenu, ce qui était approprié pour le 1er algo.
                      Ici, tu es obligé de tout parcourir (les GroupMenus, les menus et les menus de l'agent !) pour trouver les correspondances. Ce n'est pas logique et c'est pour ça que tu as du mal à écrire le code.

                      On recommence avec l'autre algo ?

                      NB : tu remarqueras que ta variable menu n'est jamais utilisée.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        20 janvier 2020 à 14:56:15

                         public List < Menu > recupererMenusAutorisee(final Long idAgent) throws FonctionnelleException {
                        		List < Menu > menus = new ArrayList <>();
                        		final Long idUaf = getIdUaf();
                        		try {
                        
                        			menus = getCoordination().rechercherMenusAgent(idAgent, idUaf);
                        		} catch (FonctionnelleException e) {
                        
                        			LOGGER.info("ERROR ", e);
                        		}
                        
                        		return menus;
                        	}
                        
                        	public List < String > recupererGroupMenuParMenusAutorisees() throws FonctionnelleException {
                        
                        		final Long idAgent = (Long) getAttributSession( ID_AGENT);
                        		final Long idUaf = (Long) getAttributSession( ID_UAF);
                        		String domaine = null;
                        
                        		List < String > groupMenus = new ArrayList <>();
                        		List < Menu > menus = getCoordination().rechercherMenusAgent(idAgent, idUaf);
                        
                        		try {
                        			List < String > menuParGroupMenu = getCoordination().rechercherMenusParGroupMenu(groupMenu);
                        			if (menus.isEmpty()) {
                        				retourPortail();
                        			} else {
                        				
                        
                        				 
                        				if (Stream
                        					.of("poste-personne", "moyens nécessaires", "Gestion",
                        					    "Paye", "Recrutement")
                        					.anyMatch(domaine::equalsIgnoreCase)) {
                        
                        					menuParGroupMenu.retainAll(menus);
                        					groupMenus.add(domaine);
                        				}
                        
                        			}
                        
                        		} catch (Exception e) {
                        			LOGGER.info("ERROR ", e);
                        			ajoutMessageErreur(e, IMessages.MSG_INFO_NON_AUTORISEE);
                        		}
                        		return groupMenus;
                        	}
                        • Partager sur Facebook
                        • Partager sur Twitter
                          20 janvier 2020 à 15:04:49

                          o_O
                          J'ai l'impression de ne retrouver aucune des pistes que je t'ai données, ni ce que tu as demandé au départ.
                          Tu peux nous expliquer ?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            20 janvier 2020 à 15:17:12

                            Franchement , je me trouve aussi dans un cercle .. 

                            Car d'une cote j'ai :

                            - les groupe menus et ses menus associés 

                            - les menus autorisés pour un agent connecté

                            Situation de depart : 

                            J'ai un formulaire de recherche pour traces des agents  ( traces = supp , ajout , modif d'une demande ) 

                            - un agent se connecte , il accede a cet ecran oû il y a le formualire : 

                            - il trouve 3 liste deroulantes : 

                            premiere : groupMenu

                            deuxieme : Menu 

                            troisieme : les academies 

                            zone pour choisir la date ou la periode de recherche ! 

                            jusqu'à là tout va bien : 

                            par defaut j'affiche l'academie ou l'agent connecté est 

                            liste de groupMenu OK : je selectionne 1e => liste menus s'alimente dynamiquement ! 

                            apres le metier ont fait une demande : 

                            Certain agents ont pas l'acces a touts les menus ( quelque item deuxieme liste deroulante ) => pour eux ce n'est pas LOGIQUE  d'effectuer de recherche trace sur de menus auquels ils n'ont pas l'acces . ( ON VA DIRE C EST NORMALE ) 

                            le metier veut que la liste de menus soit alimenté que par les menus autorisés et non tout les autres aussi . 

                            Du coup j'ai ajouter dans mon code menuAutoriséparAgent. 

                            pour qlq cas , certain groupMenu ne seront plus la , ca sert rien de le mettre dans la liste si aucun menu est autorisé . 

                            Alors  j'ai voulu les filtrer a partir de menus autorisé . ( J'AI PAS TROUV2 AUTRE IDEE ) , de telle sorte de compare les deux listes 

                            • Partager sur Facebook
                            • Partager sur Twitter
                              20 janvier 2020 à 15:37:14

                              Oui, on parle bien de la même chose.
                              La ligne de travail que je t'ai proposée sert bien à faire ça.

                              Et le dernier code que tu as posté n'a rien à voir ni avec ce que tu dis là, ni avec ce que je t'ai proposé.
                              Qu'est-ce que tu n'a pas compris dans mes explications ?

                              -
                              Edité par Zachee54 20 janvier 2020 à 15:38:27

                              • Partager sur Facebook
                              • Partager sur Twitter
                                20 janvier 2020 à 15:55:23

                                Algo 1 : 

                                La deuxieme ligne !! 

                                • parcourir les GroupMenus
                                • regarder si le GroupMenu est associé à un menu auquel l'agent est autorisé
                                • si oui, ajouter ce GroupMenu à selectItems.

                                La deuxieme ligne !! je n'ai pas comment tu vas trouvé le groupe Menu asscié au menu autorisé !! 

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  20 janvier 2020 à 16:43:03

                                  GazouilleVM a écrit:

                                  je n'ai pas comment tu vas trouvé le groupe Menu asscié au menu autorisé !! 

                                  Qu'est-ce qu'il y a dans ta variable menuParGroupMenu ? Si j'en crois le nom de la méthode utilisée, c'est la liste des noms des menus correspondant au GroupMenu.

                                  Et toujours si je comprends bien, la variable menus contient les menus pour lesquels l'utilisateur est autorisé.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    21 janvier 2020 à 10:54:41

                                    Oui effectivement 

                                    menus = liste de menus autorisé pour l'agent connecté 


                                    menuParGroupMenu =  resultat de requete : selctionner les menus par groupe  ( en tout j'ai 6 groupe  , nbre fixe ) 



                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      21 janvier 2020 à 11:11:33

                                      Rassure-moi : tu as suivi des études d'informatique ??
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        21 janvier 2020 à 14:07:20

                                        Je suis en re-conversion . j'apprends l'information , il y qlqs mois !!
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          21 janvier 2020 à 14:26:11

                                          Oui mais quelle formation ? Comment ça se fait que tu bosses en entreprise si tu ne sais pas par où prendre ça ?

                                          Nan parce que là on descend très bas dans l'algorithmique de base.

                                          Je te conseille plutôt d'aller voir ton boss pour lui dire que c'est au-dessus de tes compétences et que tu as besoin d'une vraie formation. Te laisser coder une application métiers dans ces conditions, c'est irresponsable.

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            22 janvier 2020 à 0:15:46

                                            Zachee54 a écrit:

                                            Oui mais quelle formation ? Comment ça se fait que tu bosses en entreprise si tu ne sais pas par où prendre ça ?

                                            Nan parce que là on descend très bas dans l'algorithmique de base.

                                            Je te conseille plutôt d'aller voir ton boss pour lui dire que c'est au-dessus de tes compétences et que tu as besoin d'une vraie formation. Te laisser coder une application métiers dans ces conditions, c'est irresponsable.


                                            Il a dit re-conversion...il a surement des notions dessus et revient se rafraichir pour son projet,

                                            il doit pas etre si rouillé que ça...

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              22 janvier 2020 à 8:59:15

                                              Asmitta a écrit:

                                              Il a dit re-conversion...il a surement des notions dessus et revient se rafraichir pour son projet,

                                              il doit pas etre si rouillé que ça...


                                              Pour moi etre en reconvertion veut dire qu'il n'a pas fait d'étude dans ce domaine, et que justement il est en train d'apprendre.

                                              Moi, le 1er truc qui me choque, c'est qu'on ait un objet Menu, et pas d'objet GroupMenu.

                                              Niveau algo pure pour le problème actuel, on a 2 options. :

                                              1/ Pour chaque GroupMenu, on parcours sa liste de Menu et on regarde si le user a accès au moins l'un d'eux.

                                              2/ On parcours la liste des Menu auxquels le user a accès, et on va récupérer le GroupMenu pour chacun d'eux.

                                              -
                                              Edité par Tiffado 22 janvier 2020 à 9:05:35

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                23 janvier 2020 à 11:02:09

                                                Tiffado a écrit:

                                                Niveau algo pure pour le problème actuel, on a 2 options. :

                                                1/ Pour chaque GroupMenu, on parcours sa liste de Menu et on regarde si le user a accès au moins l'un d'eux.

                                                2/ On parcours la liste des Menu auxquels le user a accès, et on va récupérer le GroupMenu pour chacun d'eux.

                                                Oui, c'est ce que je lui ai proposé.

                                                Asmitta a écrit:

                                                Il a dit re-conversion...il a surement des notions dessus et revient se rafraichir pour son projet,

                                                il doit pas etre si rouillé que ça...

                                                Une fois qu'on a la liste des menus d'un GroupMenu d'un côté, et la liste des menus autorisés de l'autre côté, ne pas savoir par où prendre le problème montre qu'on n'a pas les notions de base d'un algorithme.
                                                Il y a ici une autre subtilité dont je n'ai pas encore parlé (Menu vs. String), mais il n'en est même pas là.

                                                À quoi sert le forum exactement ?
                                                En tout cas pas à faire le boulot à la place des gens sans qu'ils comprennent ! Ce n'est pas leur rendre service, ni à eux ni à leur entreprise.
                                                Ni à leur faire un cours complet.

                                                À ce niveau-là le problème n'est plus de trouver ses menus ; c'est qu'il reprenne les bases de la programmation.

                                                -
                                                Edité par Zachee54 23 janvier 2020 à 11:06:02

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  23 janvier 2020 à 11:23:20

                                                  Effectivement, il s'agit simplement de parcourir une liste, et pour chaque élément, tester s'il est présent dans une autre liste. Rien de bien fou donc.

                                                  Après, comment s’entraîner en algo a part en codant encore et encore ?

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    23 janvier 2020 à 11:32:29

                                                    Ce serait pour quelqu'un qui suit un cours et bute sur un exercice, je dis pas. Ce serait un plaisir !

                                                    Là, ce qui m'inquiète, c'est qu'il demande ça pour un logiciel en prod. Si je l'aide plus que je ne l'ai déjà fait (et je l'ai beaucoup fait), je crains qu'il ne décroche complètement.

                                                    @GazouilleVM : relève le défi ! Trouve-nous comment savoir si le GroupMenu contient un menu autorisé, même si le code plante. Quand tu auras fait ça on passera à l'étape suivante.
                                                    Sinon, c'est qu'il faut que tu bosses l'algorithmique et je pense qu'on ne peut pas le faire à ta place.

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter

                                                    Liste from List en java

                                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                    • Editeur
                                                    • Markdown