AverageCowHealthService.java

package edu.ucsb.cs156.happiercows.services;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import edu.ucsb.cs156.happiercows.entities.UserCommons;

import edu.ucsb.cs156.happiercows.repositories.UserCommonsRepository;

@Service
public class AverageCowHealthService {

    @Autowired
    UserCommonsRepository userCommonsRepository;

    public double getAverageCowHealth(long commonsId) {
        Iterable<UserCommons> userCommonsList = userCommonsRepository.findByCommonsId(commonsId);
        double totalHealth = 0.0;
        int totalCows = 0;

        for(UserCommons userCommons: userCommonsList){
            totalHealth += userCommons.getCowHealth() * userCommons.getNumOfCows();
            totalCows += userCommons.getNumOfCows();
        }

        if(!userCommonsList.iterator().hasNext()){
            throw new IllegalArgumentException("Unable to get average cow health");
        }

        return totalCows == 0 ? 0 :totalHealth / totalCows;
    } 
}