From: <jbo...@li...> - 2005-12-19 11:34:19
|
Author: unibrew Date: 2005-12-19 06:33:59 -0500 (Mon, 19 Dec 2005) New Revision: 1859 Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCounterTools.java trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDescriptor.java Log: [DOWNLOADCOUNTERS] Updating a little funcionality of counters. Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCounterTools.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCounterTools.java 2005-12-19 09:51:24 UTC (rev 1858) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCounterTools.java 2005-12-19 11:33:59 UTC (rev 1859) @@ -103,7 +103,7 @@ } // Getting the counters values. - Map<String,String> values = desc.getValuesForPortlet(projectId); + Map<String,Long> values = desc.getValuesForPortlet(projectId); // Filling the context for portlet. DelegateContext counters = ctx.next("counters"); @@ -112,7 +112,7 @@ // Resolving the file name. String fileName = keyLink.split(File.separator)[keyLink.split(File.separator).length-1]; counter.put("link",fileName); - counter.put("value",values.get(keyLink)); + counter.put("value",Long.toString(values.get(keyLink))); } return ctx; } @@ -162,4 +162,27 @@ return FORGE_FILE_ACCESS_DIR + File.separator + DOWNLOADCOUNTER_JSP; } + /** + * Method returns overall sum of all downloads for specified <code>projectId</code> name. + * @param projectId + * Project id name for which sum must be generated. + * @param portalName + * Name of the portal. + * @param cm + * ContentManager object. + * @return + * Returns sum of all downloads. + */ + public static long getOverallDownloadsForProject (String projectId,String portalName,ContentManager cm) { + Map<String,Long> values = getDesc(portalName,cm).getValuesForPortlet(projectId); + if (values==null || values.size()==0) { + return 0; + } + long sum=0; + for (String key : values.keySet()){ + sum+=values.get(key); + } + return sum; + } + } \ No newline at end of file Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDescriptor.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDescriptor.java 2005-12-19 09:51:24 UTC (rev 1858) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDescriptor.java 2005-12-19 11:33:59 UTC (rev 1859) @@ -315,11 +315,19 @@ return links; } - public synchronized Map<String,String> getValuesForPortlet (String projectId) { + /** + * Method gives a Map<String,Long> containing pairs of link to tracked file + * and the Long value object which contains number of downloads of this file. + * @param projectId + * Project id name for which Map of values is reuqested. + * @return + * Map<String,Long> containing link:value pairs. + */ + public synchronized Map<String,Long> getValuesForPortlet (String projectId) { List<String> links = getProjectLinks(projectId); - Map<String,String> values = new Hashtable<String,String>(links.size()); + Map<String,Long> values = new Hashtable<String,Long>(links.size()); for (String link : links) { - values.put(link,Long.toString(downloadCounters.get(link).getValue())); + values.put(link,downloadCounters.get(link).getValue()); } return values; } |