public HashMap<String, List<PanelType>> groupPanelByTiming( List<PanelType> panelList, String queryTiming) { List<PanelType> anyPanelList = new ArrayList<PanelType>(); List<PanelType> sameVisitPanelList = new ArrayList<PanelType>(); List<PanelType> sameInstanceNumPanelList = new ArrayList<PanelType>(); // iterate the panel list and put them in seperate bucket String panelTiming = null, finalTiming = QueryTimingHandler.ANY; HashMap<String, List<PanelType>> panelTimingMap = new HashMap<String, List<PanelType>>(); for (PanelType panel : panelList) { panelTiming = panel.getPanelTiming(); if (panelTiming != null) { finalTiming = panelTiming; } else if (queryTiming != null) { finalTiming = queryTiming; } else { finalTiming = "ANY"; } if (finalTiming.equals(QueryTimingHandler.ANY)) { anyPanelList.add(panel); } else if (finalTiming.equalsIgnoreCase(QueryTimingHandler.SAME) || finalTiming.equals(QueryTimingHandler.SAMEVISIT)) { sameVisitPanelList.add(panel); } else if (finalTiming.equalsIgnoreCase(QueryTimingHandler.SAMEINSTANCENUM)) { sameInstanceNumPanelList.add(panel); } } // panelTimingMap.put(QueryTimingHandler.ANY, anyPanelList); panelTimingMap.put(QueryTimingHandler.SAMEVISIT, sameVisitPanelList); panelTimingMap.put(QueryTimingHandler.SAMEINSTANCENUM, sameInstanceNumPanelList); return panelTimingMap; }