[jboss-svn-commits] JBL Code SVN: r5188 - in labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status: service/impl service/impl/protocol/db service/impl/protocol/shotoku service/protocol templates

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jul 19 17:41:17 EDT 2006


Author: wrzep
Date: 2006-07-19 17:41:09 -0400 (Wed, 19 Jul 2006)
New Revision: 5188

Added:
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/ValueEntity.java
Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/DBScoresFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/PluginValuesEntity.java
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/PluginsValuesEntity.java
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/shotoku/PluginValuesImpl.java
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/protocol/PluginValues.java
   labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/templates/Column.java
Log:
JBLAB-689
Implemented entity beans (including entity relationships).

Pawel


Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java	2006-07-19 19:56:10 UTC (rev 5187)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java	2006-07-19 21:41:09 UTC (rev 5188)
@@ -43,6 +43,7 @@
 import org.jboss.forge.status.service.ScoresService;
 import org.jboss.forge.status.service.ScoresServiceLocal;
 import org.jboss.forge.status.service.ScoresServiceRemote;
+import org.jboss.forge.status.service.impl.protocol.db.DBScoresFactory;
 import org.jboss.forge.status.service.protocol.PluginConf;
 import org.jboss.forge.status.service.protocol.PluginsValues;
 import org.jboss.forge.status.service.protocol.ScoresFactory;
@@ -114,7 +115,9 @@
 		ScoresRepositoryManager dbrm;
 		try {
 			dbrm = new DBScoresRepositoryManager();
-			dbrm.save(pluginsValues);
+			PluginsValues ple = (new DBScoresFactory()).
+										createPluginsValues(projects, plugins);
+			dbrm.save(ple);
 		} catch (NamingException e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();

Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/DBScoresFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/DBScoresFactory.java	2006-07-19 19:56:10 UTC (rev 5187)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/DBScoresFactory.java	2006-07-19 21:41:09 UTC (rev 5188)
@@ -39,11 +39,11 @@
 public class DBScoresFactory implements ScoresFactory {
 	
 	public PluginsValues createPluginsValues(Projects projects, Plugins plugins) {
-		return null; //TODO
+		return new PluginsValuesEntity(projects, plugins);
 	}
 	
 	public PluginValues createPluginValues(Plugin plugin, Set<String> projectIds) {
-		return null; //TODO
+		return new PluginValuesEntity(plugin, projectIds);
 	}
 	
 }
\ No newline at end of file

Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/PluginValuesEntity.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/PluginValuesEntity.java	2006-07-19 19:56:10 UTC (rev 5187)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/PluginValuesEntity.java	2006-07-19 21:41:09 UTC (rev 5188)
@@ -23,47 +23,69 @@
 
 package org.jboss.forge.status.service.impl.protocol.db;
 
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.MapKey;
+import javax.persistence.OneToMany;
 import javax.persistence.Table;
 
-import org.jboss.forge.status.service.protocol.PluginsValues;
+import org.jboss.forge.status.plugins.Plugin;
+import org.jboss.forge.status.service.protocol.PluginValues;
 
 /**
  * @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com)
  */
 @Entity
- at Table(name = "jblab_plugin_values")
-public class PluginValuesEntity extends ScoresEntity
+ at Table(name = "jblab_jmm_plugin_values")
+public class PluginValuesEntity extends ScoresEntity implements PluginValues
 {
 
+	private static final long serialVersionUID = 6211914842083801542L;
+	
 	private long id;
     private String pluginId;
-        
+    private String linkName;
+    
+    private Map<String, ValueEntity> values = new HashMap<String, ValueEntity>();
+   
     /**
      * Default constructor
      */
     public PluginValuesEntity () {}
         
-    /**
-     * Main constructor for PluginValuesEntity
-     * which takes all possible values to set all its attributes. 
-     */
-    public PluginValuesEntity (String pluginId) {
+    public PluginValuesEntity(Plugin plugin, Set<String> projectIds) {
     	
-    	this.pluginId = pluginId;
+		// Get plugin properties
+		pluginId = plugin.getId();
+		linkName = plugin.getLinkName();
+		
+		// Get plugin values
+		for (String projectId : projectIds) {
+			
+			ValueEntity value = new ValueEntity(projectId,
+												plugin.getValue(projectId),
+											    plugin.getRate(projectId),
+											    plugin.getLink(projectId));
+			values.put(projectId, value);
+		}
     }
 
-    @Id
+	@Id
     @GeneratedValue
     @Column(name = "id")
     public long getId() {
 		return id;
 	}
     
-    private void setId(long id) {
+    protected void setId(long id) {
     	this.id = id;
     }
 
@@ -74,5 +96,48 @@
 
 	public void setPluginId(String pluginId) {
 		this.pluginId = pluginId;
-	}	
+	}
+	
+	@Column(name = "linkName")
+	public String getLinkName() {
+		return linkName;
+	}
+
+	protected void setLinkName(String linkName) {
+		this.linkName = linkName;
+	}
+
+	@OneToMany(cascade={CascadeType.ALL})
+	@JoinColumn(name="plugin_values_id")
+	@MapKey(name="projectId") 
+	public Map<String, ValueEntity> getValues() {
+		return values;
+	}
+
+	public void setValues(Map<String, ValueEntity> values) {
+		this.values = values;
+	}
+	
+	/* Non-DB methods */
+
+	public long getValue(String projectId) {
+		
+		ValueEntity valueEntity = values.get(projectId);
+		
+		return (valueEntity == null ? 0 : valueEntity.getValue());
+	}
+
+	public int getRate(String projectId) {
+		
+		ValueEntity valueEntity = values.get(projectId);
+		
+		return (valueEntity == null ? 0 : valueEntity.getRate());
+	}
+	
+	public String getLink(String projectId) {
+
+		ValueEntity valueEntity = values.get(projectId);
+		
+		return (valueEntity == null ? "" : valueEntity.getLink());
+	}
 }

Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/PluginsValuesEntity.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/PluginsValuesEntity.java	2006-07-19 19:56:10 UTC (rev 5187)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/PluginsValuesEntity.java	2006-07-19 21:41:09 UTC (rev 5188)
@@ -24,14 +24,26 @@
 package org.jboss.forge.status.service.impl.protocol.db;
 
 import java.util.Calendar;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
 
+import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.MapKey;
+import javax.persistence.OneToMany;
 import javax.persistence.Table;
 
+import org.jboss.forge.common.projects.Projects;
+import org.jboss.forge.common.projects.permissions.NullPermissionsChecker;
+import org.jboss.forge.status.plugins.Plugin;
+import org.jboss.forge.status.service.protocol.PluginValues;
 import org.jboss.forge.status.service.protocol.PluginsValues;
+import org.jboss.forge.status.tools.Plugins;
 
 /**
  *
@@ -41,27 +53,46 @@
  * project scores for Status Matrix.
  */
 @Entity
- at Table(name = "jblab_plugins_values")
-public class PluginsValuesEntity extends ScoresEntity
+ at Table(name = "jblab_jmm_plugins_values")
+public class PluginsValuesEntity extends ScoresEntity implements PluginsValues
 {
 
+	private static final long serialVersionUID = 1299912767177909726L;
+
 	private long id;
     private Calendar date;
-        
+    
+	/** Map : pluginId -> pluginValue */
+	private Map<String,PluginValuesEntity> values;
+    
     /**
      * Default constructor
      */
     public PluginsValuesEntity () {}
-        
-    /**
-     * Main constructor for PluginsValuesEntity
-     * which takes all possible values to set all its attributes. 
-     */
-    public PluginsValuesEntity (Calendar date) {
-    	
-    	this.date = date;
-    }
 
+    
+	/**
+	 * @param projects Projects present in the Status Matrix
+	 * @param plugins Plugins which values will be stored
+	 */
+	public PluginsValuesEntity(Projects projects, Plugins plugins) {
+		
+		date = Calendar.getInstance();
+		
+		values = new HashMap<String,PluginValuesEntity>();
+		
+		Set<String> projectIds =
+			projects.getProjectIds(new NullPermissionsChecker(), null);
+		
+		for (Plugin plugin : plugins.getPlugins()) {
+			
+			PluginValuesEntity pluginValues =
+									new PluginValuesEntity(plugin, projectIds);
+			
+			values.put(plugin.getId(), pluginValues);
+		}
+	}
+	
     @Id
     @GeneratedValue
     @Column(name = "id")
@@ -69,7 +100,7 @@
 		return id;
 	}
     
-    private void setId(long id) {
+	protected void setId(long id) {
     	this.id = id;
     }
 
@@ -81,4 +112,21 @@
 	public void setDate(Calendar date) {
 		this.date = date;
 	}
+
+	@OneToMany(cascade={CascadeType.ALL})
+	@JoinColumn(name="plugins_values_id")
+	@MapKey(name="pluginId") 
+	public Map<String, PluginValuesEntity> getValues() {
+		return values;
+	}
+
+	public void setValues(Map<String, PluginValuesEntity> values) {
+		this.values = values;
+	}
+
+	public PluginValues getPluginValues(String pluginId) {
+		return values.get(pluginId);
+	}
+	
+	
 }

Added: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/ValueEntity.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/ValueEntity.java	2006-07-19 19:56:10 UTC (rev 5187)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/db/ValueEntity.java	2006-07-19 21:41:09 UTC (rev 5188)
@@ -0,0 +1,105 @@
+
+ /*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2006, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+
+package org.jboss.forge.status.service.impl.protocol.db;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ * @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com)
+ */
+ at Entity
+ at Table(name = "jblab_jmm_scores")
+public class ValueEntity extends ScoresEntity
+{
+
+	private long id;
+	
+	private String projectId;
+	private long value;
+	private int rate;
+	private String link;
+	
+	public ValueEntity() {}
+
+	public ValueEntity(String projectId, long value, int rate, String link) {
+		
+		this.projectId = projectId;
+		this.value = value;
+		this.rate = rate;
+		this.link = link;
+	}
+
+	@Id
+    @GeneratedValue
+    @Column(name = "id")
+	public long getId() {
+		return id;
+	}
+	
+	protected void setId(long id) {
+		this.id = id;
+	}
+	
+	@Column(name = "projectId")
+	public String getProjectId() {
+		return projectId;
+	}
+
+	public void setProjectId(String projectId) {
+		this.projectId = projectId;
+	}
+
+	@Column(name = "link")
+	public String getLink() {
+		return link;
+	}
+
+	public void setLink(String link) {
+		this.link = link;
+	}
+
+	@Column(name = "rate")
+	public int getRate() {
+		return rate;
+	}
+
+	public void setRate(int rate) {
+		this.rate = rate;
+	}
+
+	@Column(name = "value")
+	public long getValue() {
+		return value;
+	}
+
+	public void setValue(long value) {
+		this.value = value;
+	};	
+	
+	
+}
\ No newline at end of file

Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/shotoku/PluginValuesImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/shotoku/PluginValuesImpl.java	2006-07-19 19:56:10 UTC (rev 5187)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/shotoku/PluginValuesImpl.java	2006-07-19 21:41:09 UTC (rev 5188)
@@ -38,12 +38,12 @@
 	
 	private static final long serialVersionUID = 5196364802717262757L;
 	
+	private String pluginId;
+	private String linkName;
+	
 	private Map<String,Long> values = new HashMap<String,Long>();
 	private Map<String,Integer> rates = new HashMap<String,Integer>();
 	private Map<String,String> links = new HashMap<String,String>();
-	
-	private String pluginId;
-	private String linkName;
 		
 	public PluginValuesImpl(Plugin plugin, Set<String> projectIds) {
 	
@@ -60,15 +60,15 @@
 		}
 	}
 
-	public String getId() {
+	public String getPluginId() {
 		return pluginId;
 	}
 	
-	public Long getValue(String projectId) {
+	public long getValue(String projectId) {
 		return values.get(projectId);
 	}
 
-	public Integer getRate(String projectId) {
+	public int getRate(String projectId) {
 		return rates.get(projectId);
 	}
 	

Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/protocol/PluginValues.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/protocol/PluginValues.java	2006-07-19 19:56:10 UTC (rev 5187)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/protocol/PluginValues.java	2006-07-19 21:41:09 UTC (rev 5188)
@@ -30,11 +30,11 @@
 
 public interface PluginValues extends Serializable {
 	
-	public String getId();
+	public String getPluginId();
 	
-	public Long getValue(String projectId);
+	public long getValue(String projectId);
 
-	public Integer getRate(String projectId);
+	public int getRate(String projectId);
 	
 	public String getLink(String projectId);
 	

Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/templates/Column.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/templates/Column.java	2006-07-19 19:56:10 UTC (rev 5187)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/templates/Column.java	2006-07-19 21:41:09 UTC (rev 5188)
@@ -116,7 +116,7 @@
 			}
 		} catch (Exception e) {
 			log.error("Could not get value for plugin: "
-										+ pluginValues.getId(), e);
+										+ pluginValues.getPluginId(), e);
 		}
 	}
 
@@ -162,7 +162,7 @@
 	 * @return Column plugin id
 	 */
 	public String getId() {
-		return pluginValues.getId();
+		return pluginValues.getPluginId();
 	}
 	
 	/**




More information about the jboss-svn-commits mailing list