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;
|