From: <sc...@hy...> - 2010-03-29 21:22:18
|
Author: scottmf Date: 2010-03-29 14:22:09 -0700 (Mon, 29 Mar 2010) New Revision: 14435 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14435 Modified: trunk/src/org/hyperic/hq/measurement/server/session/AgentScheduleSyncZevent.java trunk/src/org/hyperic/hq/measurement/server/session/MeasurementDAO.java Log: [HHQ-3815] changed a couple of the apis to accept more generic collections. add findEnabledByResources() to MeasurementDAO Modified: trunk/src/org/hyperic/hq/measurement/server/session/AgentScheduleSyncZevent.java =================================================================== --- trunk/src/org/hyperic/hq/measurement/server/session/AgentScheduleSyncZevent.java 2010-03-29 20:57:36 UTC (rev 14434) +++ trunk/src/org/hyperic/hq/measurement/server/session/AgentScheduleSyncZevent.java 2010-03-29 21:22:09 UTC (rev 14435) @@ -25,8 +25,9 @@ package org.hyperic.hq.measurement.server.session; -import java.util.List; +import java.util.Collection; +import org.hyperic.hq.appdef.shared.AppdefEntityID; import org.hyperic.hq.zevents.Zevent; import org.hyperic.hq.zevents.ZeventManager; import org.hyperic.hq.zevents.ZeventPayload; @@ -56,26 +57,27 @@ implements ZeventPayload { // List<AppdefEntityID> - private final List _entityIDs; + private final Collection _entityIDs; - public AgentScheduleSyncZeventPayload(List ids) { + public AgentScheduleSyncZeventPayload(Collection ids) { _entityIDs = ids; } - public List getEntityIds() { + public Collection getEntityIds() { return _entityIDs; } } - public List getEntityIds() { + public Collection getEntityIds() { return ((AgentScheduleSyncZeventPayload)getPayload()).getEntityIds(); } /** - * @param ids List of {@link AppdefEntityID} + * @param aeids {@link Collection} of {@link AppdefEntityID} */ - public AgentScheduleSyncZevent(List aeids) { + public AgentScheduleSyncZevent(Collection aeids) { super(new AgentScheduleSyncZeventSource(), new AgentScheduleSyncZeventPayload(aeids)); } + } Modified: trunk/src/org/hyperic/hq/measurement/server/session/MeasurementDAO.java =================================================================== --- trunk/src/org/hyperic/hq/measurement/server/session/MeasurementDAO.java 2010-03-29 20:57:36 UTC (rev 14434) +++ trunk/src/org/hyperic/hq/measurement/server/session/MeasurementDAO.java 2010-03-29 21:22:09 UTC (rev 14435) @@ -261,6 +261,44 @@ return count; } + /** + * @param {@link Collection} of {@link Resource}s + * @return {@link Map} of {@link Integer} representing resourceId to + * {@link List} of {@link Measurement}s + */ + public Map findEnabledByResources(List resources) { + if (resources == null || resources.size() == 0) { + return Collections.EMPTY_MAP; + } + final String sql = new StringBuilder(256) + .append("select m from Measurement m ") + .append("where m.enabled = '1' and ") + .append("m.resource in (:rids) ") + .toString(); + final Map rtn = new HashMap(); + final Query query = getSession().createQuery(sql); + final int size = resources.size(); + for (int i=0; i<size; i+=BATCH_SIZE) { + int end = Math.min(size, i+BATCH_SIZE); + final List sublist = resources.subList(i, end); + final List resultset = query.setParameterList("rids", sublist).list(); + for (final Iterator it=resultset.iterator(); it.hasNext(); ) { + final Measurement m = (Measurement) it.next(); + final Resource r = m.getResource(); + if (r == null || r.isInAsyncDeleteState()) { + continue; + } + List tmp = (List) rtn.get(r.getId()); + if (tmp == null) { + tmp = new ArrayList(); + rtn.put(r.getId(), tmp); + } + tmp.add(m); + } + } + return rtn; + } + public List findEnabledByResource(Resource resource) { if (resource == null || resource.isInAsyncDeleteState()) { return Collections.EMPTY_LIST; |