package uk.ac.leeds.ccg.andyt.projects.genesis.society.demography; import java.util.HashMap; import uk.ac.leeds.ccg.andyt.projects.genesis.society.environment.Environment; import uk.ac.leeds.ccg.andyt.projects.genesis.society.persons.Female; import uk.ac.leeds.ccg.andyt.projects.genesis.society.persons.Male; public class Mortality { public HashMap _Annual_LifeTable; public Environment _Environment; public Mortality(Environment _Environment) { this._Environment = _Environment; _Annual_LifeTable = new HashMap(); int _MaxAge = 100; int _Gender; int _Age; // Set Age Specific Mortality Rates for Females _Gender = 0; _Age = 0; _Annual_LifeTable.put(new Gender_Age(_Gender, _Age), 0.5d); for (_Age = 1; _Age < 5; _Age++) { _Annual_LifeTable.put(new Gender_Age(_Gender, _Age), 0.2d); } for (_Age = 5; _Age < 15; _Age++) { _Annual_LifeTable.put(new Gender_Age(_Gender, _Age), 0.1d); } for (_Age = 15; _Age < 30; _Age++) { _Annual_LifeTable.put(new Gender_Age(_Gender, _Age), 0.005d); } for (_Age = 30; _Age < 60; _Age++) { _Annual_LifeTable.put(new Gender_Age(_Gender, _Age), 0.1d); } for (_Age = 60; _Age < _MaxAge; _Age++) { _Annual_LifeTable.put(new Gender_Age(_Gender, _Age), 1d); } _Annual_LifeTable.put(new Gender_Age(_Gender, _MaxAge), 10d); // Set Age Specific Mortality Rates for Females _Gender = 1; _Age = 0; _Annual_LifeTable.put(new Gender_Age(_Gender, _Age), 0.5d); for (_Age = 1; _Age < 5; _Age++) { _Annual_LifeTable.put(new Gender_Age(_Gender, _Age), 0.2d); } for (_Age = 5; _Age < 15; _Age++) { _Annual_LifeTable.put(new Gender_Age(_Gender, _Age), 0.15d); } for (_Age = 15; _Age < 30; _Age++) { _Annual_LifeTable.put(new Gender_Age(_Gender, _Age), 0.01d); } for (_Age = 30; _Age < 60; _Age++) { _Annual_LifeTable.put(new Gender_Age(_Gender, _Age), 0.2d); } for (_Age = 60; _Age < _MaxAge; _Age++) { _Annual_LifeTable.put(new Gender_Age(_Gender, _Age), 2d); } _Annual_LifeTable.put(new Gender_Age(_Gender, _MaxAge), 20d); } public double get_AnnualMortalityLikelihood(Female _Female) { double _AnnualMortalityLikelihood; int _Age = _Female.get_AgeInYears_int(_Environment._Time); int _Gender = 0; Object _AnnualMortalityLikelihood_Object = _Annual_LifeTable.get(new Gender_Age(_Gender, _Age)); if (_AnnualMortalityLikelihood_Object == null) { _AnnualMortalityLikelihood = 1d; } else { _AnnualMortalityLikelihood = (Double) _AnnualMortalityLikelihood_Object; } return _AnnualMortalityLikelihood; } public double get_AnnualMortalityLikelihood(Male _Male) { double _AnnualMortalityLikelihood; int _Age = _Male.get_AgeInYears_int(_Environment._Time); int _Gender = 1; Object _AnnualMortalityLikelihood_Object = _Annual_LifeTable.get(new Gender_Age(_Gender, _Age)); if (_AnnualMortalityLikelihood_Object == null) { _AnnualMortalityLikelihood = 1d; } else { _AnnualMortalityLikelihood = (Double) _AnnualMortalityLikelihood_Object; } return _AnnualMortalityLikelihood; } // public class _int_int{ // public int int0; // public int int1; // _int_int(int _int0, int _int1){ // this.int0 = _int0; // this.int1 = _int1; // } // } public class Gender_Age { public int _Gender; public int _Age; Gender_Age(int _Gender, int _Age) { this._Gender = _Gender; this._Age = _Age; } @Override public boolean equals(Object _Object) { if (_Object instanceof Gender_Age) { Gender_Age _Object_Gender_Age = (Gender_Age) _Object; return _Object_Gender_Age._Gender == this._Gender && _Object_Gender_Age._Age == this._Age; } return false; } @Override public int hashCode() { int hash = 3; hash = 97 * hash + this._Gender; hash = 97 * hash + this._Age; return hash; } } }