HaniiPuppy

getTree - ArrayListMultimap.remove not removing

Oct 15th, 2014
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.39 KB | None | 0 0
  1.     protected List<TreeMember> getTree(List<NameIndentLevelPair> values)
  2.     {
  3.         System.out.println("Entering get tree method");
  4.         List<TreeMember> rootTreeMembers = new ArrayList<TreeMember>();
  5.        
  6.         if(values.isEmpty())
  7.             return rootTreeMembers;
  8.        
  9.         Multimap<TreeMember, List<NameIndentLevelPair>> currentlyWorkingOn = ArrayListMultimap.create();
  10.        
  11.         // Get the tree getting loop started off.
  12.         int initialMinIndentLevel = values.get(0).getIndentLevel();
  13.        
  14.         TreeMember initialCurrentFound = null;
  15.         List<NameIndentLevelPair> initialCurrentTreeMemberSubs = new ArrayList<NameIndentLevelPair>();
  16.        
  17.         for(int i = 0; i < values.size(); i++)
  18.         {
  19.             System.out.println("Checking nameindentlevelpair in initial loop");
  20.            
  21.             if(values.get(i).getIndentLevel() <= initialMinIndentLevel)
  22.             {
  23.                 if(initialCurrentFound != null)
  24.                 {
  25.                     rootTreeMembers.add(initialCurrentFound);
  26.                    
  27.                     if(!initialCurrentTreeMemberSubs.isEmpty())
  28.                         currentlyWorkingOn.put(initialCurrentFound, initialCurrentTreeMemberSubs);
  29.                 }
  30.                
  31.                 initialCurrentFound = new TreeMember(values.get(i).getName());
  32.                 initialCurrentTreeMemberSubs = new ArrayList<NameIndentLevelPair>();
  33.             }
  34.             else
  35.                 initialCurrentTreeMemberSubs.add(values.get(i));
  36.         }
  37.        
  38.         // Tree-getting loop.
  39.         while(!currentlyWorkingOn.isEmpty())
  40.         {
  41.             System.out.println("currentlyWorkingOn run-through");
  42.             System.out.println("Currently working on contains: ");
  43.            
  44.             for(Entry<TreeMember, List<NameIndentLevelPair>> i : currentlyWorkingOn.entries())
  45.             {
  46.                 System.out.println("Tree name: " + i.getKey().getName());
  47.                
  48.                 for(NameIndentLevelPair j : i.getValue())
  49.                 {
  50.                     System.out.println("- " + j.getName() + " (" + j.getIndentLevel() + ")");
  51.                 }
  52.             }
  53.            
  54.             Multimap<TreeMember, List<NameIndentLevelPair>> workingOnThisRound = ArrayListMultimap.create(currentlyWorkingOn);
  55.            
  56.             for(Entry<TreeMember, List<NameIndentLevelPair>> entry : workingOnThisRound.entries())
  57.             {
  58.                 System.out.println("Checking entry:" + entry.getKey().getName());
  59.                
  60.                 for(NameIndentLevelPair i : entry.getValue())
  61.                     System.out.println("- " + i.getName());
  62.                
  63.                 int minIndentLevel = entry.getValue().get(0).getIndentLevel();
  64.                
  65.                 TreeMember currentFound = null;
  66.                 List<NameIndentLevelPair> currentTreeMemberSubs = new ArrayList<NameIndentLevelPair>();
  67.                
  68.                 for(int i = 0; i < entry.getValue().size(); i++)
  69.                 {
  70.                     System.out.println("Checking tree pair: " + entry.getValue().get(i).getName() + " (" + entry.getValue().get(i).getIndentLevel() + ")");
  71.                    
  72.                     if(entry.getValue().get(i).getIndentLevel() <= minIndentLevel)
  73.                     {
  74.                         if(currentFound != null)
  75.                         {
  76.                             entry.getKey().addMember(currentFound);
  77.                            
  78.                             if(!currentTreeMemberSubs.isEmpty())
  79.                                 currentlyWorkingOn.put(currentFound, currentTreeMemberSubs);
  80.                         }
  81.                        
  82.                         currentFound = new TreeMember(entry.getValue().get(i).getName());
  83.                         currentTreeMemberSubs = new ArrayList<NameIndentLevelPair>();
  84.                     }
  85.                     else
  86.                         currentTreeMemberSubs.add(entry.getValue().get(i));
  87.                 }
  88.                
  89.                 System.out.println("currentlyWorkingOn contains before removing: ");
  90.                 for(Entry<TreeMember, List<NameIndentLevelPair>> i : currentlyWorkingOn.entries())
  91.                 {
  92.                     System.out.println(i.getKey().getName());
  93.                    
  94.                     for(NameIndentLevelPair j : i.getValue())
  95.                         System.out.println("- " + j.getName() + " (" + j.getIndentLevel() + ")");
  96.                 }
  97.                
  98.                 System.out.println("Attempting to remove: " + entry.getKey().getName());
  99.                 for(NameIndentLevelPair i : entry.getValue())
  100.                     System.out.println("- " + i.getName() + " (" + i.getIndentLevel() + ")");
  101.                
  102.                 currentlyWorkingOn.remove(entry.getKey(), entry.getValue());
  103.                
  104.                 System.out.println("currentlyWorkingOn contains after removing: ");
  105.                 for(Entry<TreeMember, List<NameIndentLevelPair>> i : currentlyWorkingOn.entries())
  106.                 {
  107.                     System.out.println(i.getKey().getName());
  108.                    
  109.                     for(NameIndentLevelPair j : i.getValue())
  110.                         System.out.println("- " + j.getName() + " (" + j.getIndentLevel() + ")");
  111.                 }
  112.             }
  113.         }
  114.        
  115.         return rootTreeMembers;
  116.     }
Advertisement
Add Comment
Please, Sign In to add comment