package uk.ac.leeds.sog.moses.agent; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; import org.apache.log4j.Logger; /** * @author Belinda *This class intialise the probability model for different age *groups to generate the changes in formal care or death staue of a person. */ public class ProbabilityModel { private static List s_listOfprobabilityByAgeGroup; private static Logger s_logger = Logger.getLogger(ProbabilityModel.class); private ProbabilityModel() { } //initialse the model public static void initialise() { // create age groups s_listOfprobabilityByAgeGroup = new ArrayList(); s_listOfprobabilityByAgeGroup.add(new ProbabilityByAgeGroup(65, 75, 25, 25)); s_listOfprobabilityByAgeGroup.add(new ProbabilityByAgeGroup(76, 85, 50, 50)); s_listOfprobabilityByAgeGroup.add(new ProbabilityByAgeGroup(86, 95, 75, 75)); s_listOfprobabilityByAgeGroup.add(new ProbabilityByAgeGroup(96, 100, 90, 90)); s_listOfprobabilityByAgeGroup.add(new ProbabilityByAgeGroup(101, 999, 99, 99)); } //method to check the formalCare staus for a person by //applying the probability of formalCare in that age group public static boolean formalcare(Person a_person) { if(s_logger.isDebugEnabled()) { s_logger.debug("check formalCare status for person(PID): " + a_person.getPid() + " age: " + a_person.getAge()); } ProbabilityByAgeGroup probabilityGroup = null; int age = a_person.getAge(); for(int i=0; i= group.getMinAge() && age <= group.getMaxAge()) { probabilityGroup = group; break; } } return probabilityGroup.formalcare(); } //method to check the death staus for a person by //applying the probability of formalCare in that age group public static boolean death(Person a_person) { if(s_logger.isDebugEnabled()) { s_logger.debug("check death status for person(PID): " + a_person.getPid() + " age: " + a_person.getAge()); } ProbabilityByAgeGroup probabilityGroup = null; int age = a_person.getAge(); for(int i=0; i= group.getMinAge() && age <= group.getMaxAge()) { probabilityGroup = group; break; } } return probabilityGroup.death(); } }