diff --git a/source/java/org/alfresco/repo/rating/RatingServiceImpl.java b/source/java/org/alfresco/repo/rating/RatingServiceImpl.java index 80f89c2174..6d856dbc09 100644 --- a/source/java/org/alfresco/repo/rating/RatingServiceImpl.java +++ b/source/java/org/alfresco/repo/rating/RatingServiceImpl.java @@ -328,7 +328,14 @@ public class RatingServiceImpl implements RatingService } } } - return (float)ratingTotal / (float)ratingCount; + if (ratingCount == 0) + { + return -1; + } + else + { + return (float)ratingTotal / (float)ratingCount; + } } public int getRatingsCount(NodeRef targetNode, String ratingSchemeName) diff --git a/source/java/org/alfresco/service/cmr/rating/RatingService.java b/source/java/org/alfresco/service/cmr/rating/RatingService.java index 356361ac93..47432cd700 100644 --- a/source/java/org/alfresco/service/cmr/rating/RatingService.java +++ b/source/java/org/alfresco/service/cmr/rating/RatingService.java @@ -95,6 +95,13 @@ public interface RatingService int getTotalRating(NodeRef targetNode, String ratingSchemeName); + /** + * This method returns the average (mean) rating in the specified scheme for the + * specified nodeRef. If there have been no ratings applied, -1 is returned. + * @param targetNode the node for which an average is sought. + * @param ratingSchemeName the rating scheme name in which the average is defined. + * @return the average (mean) value if there is one, else -1. + */ float getAverageRating(NodeRef targetNode, String ratingSchemeName); /**