[jboss-svn-commits] JBL Code SVN: r5254 - in labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service: . impl

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Jul 22 10:01:14 EDT 2006


Author: wrzep
Date: 2006-07-22 10:01:12 -0400 (Sat, 22 Jul 2006)
New Revision: 5254

Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/DBService.java
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/DBScoresRepositoryManager.java
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/DBServiceImpl.java
Log:
JBLAB-689
Added queries responsible for getting selected value or values for specified plugin to improve performance.

Pawel


Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/DBService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/DBService.java	2006-07-22 13:45:36 UTC (rev 5253)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/DBService.java	2006-07-22 14:01:12 UTC (rev 5254)
@@ -24,6 +24,7 @@
 
 import java.util.Calendar;
 
+import org.jboss.forge.status.service.protocol.PluginValues;
 import org.jboss.forge.status.service.protocol.PluginsValues;
 
 /**
@@ -38,4 +39,8 @@
 	public long getValue(String pluginId, String projectId, Calendar cal);
 
 	public boolean hasValue(String pluginId, String projectId, Calendar cal);
+	
+	public PluginValues getPluginValues(String pluginId, Calendar cal);
+
+	public boolean hasPluginValues(String pluginId, Calendar cal);
 }
\ No newline at end of file

Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/DBScoresRepositoryManager.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/DBScoresRepositoryManager.java	2006-07-22 13:45:36 UTC (rev 5253)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/DBScoresRepositoryManager.java	2006-07-22 14:01:12 UTC (rev 5254)
@@ -102,12 +102,10 @@
 	public PluginValues getPluginValues(String pluginId, Calendar cal)
 													throws GetScoresException {
 
-		PluginsValues pluginsValues = get(cal);
-
-		if (pluginsValues == null) {
-			throw new GetScoresException();
+		if (!service.hasPluginValues(pluginId, cal)) {
+			throw new GetScoresException("PluginValues not available.");
 		}
 
-		return pluginsValues.getPluginValues(pluginId);
+		return service.getPluginValues(pluginId, cal);
 	}
 }

Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/DBServiceImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/DBServiceImpl.java	2006-07-22 13:45:36 UTC (rev 5253)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/DBServiceImpl.java	2006-07-22 14:01:12 UTC (rev 5254)
@@ -38,6 +38,7 @@
 
 import org.jboss.forge.status.common.Constants;
 import org.jboss.forge.status.service.DBService;
+import org.jboss.forge.status.service.protocol.PluginValues;
 import org.jboss.forge.status.service.protocol.PluginsValues;
 import org.jboss.forge.status.tools.Tools;
 
@@ -90,16 +91,54 @@
 		return (list.size() == 0 ? null : (PluginsValues) list.get(0));
 	}
 
-	public long getValue(String pluginId, String projectId, Calendar cal) {
+	public long getValue(String pluginId, String projectId, Calendar date) {
 		
-		// TODO
-		return 0;
+		Query query = em.createQuery(
+				" SELECT c.value FROM ValueEntity c " +
+				" WHERE c.projectId = :projectId " +
+				  " AND c.pluginValues.pluginId = :pluginId " +
+				  " AND c.pluginValues.pluginsValues.date = :date ");
+		
+		query.setParameter("projectId", projectId);
+		query.setParameter("pluginId", pluginId);
+		query.setParameter("date", date, TemporalType.DATE);
+		
+		return (Long) query.getSingleResult();
 	}
 
-	public boolean hasValue(String pluginId, String projectId, Calendar cal) {
+	public boolean hasValue(String pluginId, String projectId, Calendar date) {
 		
-		// TODO 
-		return false;
+		try {
+			getValue(pluginId, projectId, date);
+		} catch (Exception e) {
+			return false;
+		}
+		
+		return true;
+	}
+
+	public PluginValues getPluginValues(String pluginId, Calendar date) {
+		
+		Query query = em.createQuery(
+				" SELECT c.value FROM PluginValuesEntity c " +
+				" WHERE c.pluginId = :pluginId " +
+				  " AND c.pluginsValues.date = :date ");
+		
+		query.setParameter("pluginId", pluginId);
+		query.setParameter("date", date, TemporalType.DATE);
+		
+		return (PluginValues) query.getSingleResult();
+	}
+
+	public boolean hasPluginValues(String pluginId, Calendar date) {
+		
+		try {
+			getPluginValues(pluginId, date);
+		} catch (Exception e) {
+			return false;
+		}
+		
+		return true;
 	}	
 	
 }




More information about the jboss-svn-commits mailing list