package com.cflint;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.cflint.tools.CFLintFilter;

public class BugList {

	Map<String, List<BugInfo>> bugList = new HashMap<String, List<BugInfo>>();
	/**
	 * 
	 */
	private static final long serialVersionUID = -8008927848087276202L;

	public BugList(final CFLintFilter filter) {
		super();
		this.filter = filter;
	}

	CFLintFilter filter;

	public CFLintFilter getFilter() {
		return filter;
	}

	public void setFilter(final CFLintFilter filter) {
		this.filter = filter;
	}

	public boolean add(final BugInfo bugInfo) {
		if (filter == null || filter.include(bugInfo)) {
			if(!bugList.containsKey(bugInfo.getMessageCode())){
				bugList.put(bugInfo.getMessageCode(),new ArrayList<BugInfo>());
			}
			List<BugInfo> curBugList = bugList.get(bugInfo.getMessageCode());
			return curBugList.add(bugInfo);
		} else {
			return false;
		}
	}

	public Map<String, List<BugInfo>> getBugList() {
		return bugList;
	}
	
	public int size(){
		int size = 0;
		for(List<?> list: bugList.values()){
			size += list.size();
		}
		return size;
	}

}

@@ -66,18 +66,15 @@
 til.
-Collection
+HashMap
 ;%0D%0Ai
@@ -81,39 +81,40 @@
 mport java.util.
-HashMap
+Iterator
 ;%0D%0Aimport java.u
@@ -210,16 +210,45 @@
  BugList
+ implements Iterable%3CBugInfo%3E
  %7B%0D%0A%0D%0A%09M
@@ -773,16 +773,17 @@
 %7B%0D%0A%09%09%09if
+ 
 (!bugLis
@@ -822,16 +822,17 @@
 Code()))
+ 
 %7B%0D%0A%09%09%09%09b
@@ -867,16 +867,17 @@
 eCode(),
+ 
 new Arra
@@ -905,16 +905,22 @@
 %09%09%7D%0D%0A%09%09%09
+final 
 List%3CBug
@@ -1129,17 +1129,16 @@
 t;%0D%0A%09%7D%0D%0A
-%09
 %0D%0A%09publi
@@ -1149,16 +1149,17 @@
 t size()
+ 
 %7B%0D%0A%09%09int
@@ -1175,17 +1175,24 @@
 ;%0D%0A%09%09for
-(
+ (final 
 List%3C?%3E 
@@ -1195,16 +1195,17 @@
 %3C?%3E list
+ 
 : bugLis
@@ -1215,16 +1215,17 @@
 alues())
+ 
 %7B%0D%0A%09%09%09si
@@ -1271,11 +1271,305 @@
 %0D%0A%09%7D%0D%0A%0D%0A
+%09public List%3CBugInfo%3E getFlatBugList() %7B%0D%0A%09%09final List%3CBugInfo%3E retval = new ArrayList%3CBugInfo%3E();%0D%0A%09%09for (final List%3CBugInfo%3E list : bugList.values()) %7B%0D%0A%09%09%09retval.addAll(list);%0D%0A%09%09%7D%0D%0A%09%09return retval;%0D%0A%0D%0A%09%7D%0D%0A%0D%0A%09public Iterator%3CBugInfo%3E iterator() %7B%0D%0A%09%09return getFlatBugList().iterator();%0D%0A%09%7D%0D%0A
 %7D%0D%0A

add getFlatBugsList