/** * Combine MonitorComposites 1 MonitorComposite. * * @param monitorCompositeList * @return MonitorComposite */ public static MonitorComposite combine(Collection<MonitorComposite> monitorCompositeList) { Date previousDate = null; Date finalDate = null; // assign the date of all the results as the most recent of all monitorComposite dates Iterator<MonitorComposite> iter = monitorCompositeList.iterator(); // note 2 lists are used instead of a Map so if 2 instanceNames are the same (say 'local') each of them can be // retained. List<MonitorComposite> monitorCompositeResultsList = new ArrayList<MonitorComposite>(); List<String> instanceNameList = new ArrayList<String>(); while (iter.hasNext()) { MonitorComposite mc = iter.next(); instanceNameList.add(mc.getInstanceName()); monitorCompositeResultsList.add(mc); if (previousDate == null || mc.getDateCreated().after(previousDate)) { finalDate = mc.getDateCreated(); } previousDate = mc.getDateCreated(); } MonitorComposite mc = new MonitorCompositeIterator(monitorCompositeResultsList).toMonitorComposite().setDateCreated(finalDate); return mc.setInstanceName(Misc.getAsString(instanceNameList)); }
public MonitorComposite filterByUnits(String units) { return new MonitorComposite(getMonitorsWithUnits(units)).setInstanceName(getInstanceName()).setDateCreated(getDateCreated()); }