/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.wordpress.salaboy.model;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.wordpress.salaboy.model.Emergency.EmergencyType;
import com.wordpress.salaboy.model.Doctor.DoctorSpeciality;
/**
*
* @author salaboy
*/
public class CityEntities {
public static final List<Vehicle> vehicles = new ArrayList<Vehicle>(){{
add(initializeHeartAttackAmbulance());
add(initializeFireAmbulance());
add(initializeCarCrashAmbulance());
add(initializeBigFireTruck());
add(initializeMediumFireTruck());
add(initializeSmallFireTruck());
}};
public static final Map<EmergencyType, List<Ambulance>> ambulances = new HashMap<EmergencyType, List<Ambulance>>() {
{
put(EmergencyType.FIRE, new ArrayList<Ambulance>() {
{
add(initializeFireAmbulance());
}
});
put(EmergencyType.HEART_ATTACK, new ArrayList<Ambulance>() {
{
add(initializeHeartAttackAmbulance());
}
});
put(EmergencyType.CAR_CRASH, new ArrayList<Ambulance>() {
{
add(initializeCarCrashAmbulance());
}
});
}
};
public static Ambulance getAmbulanceById(String id){
for (Map.Entry<EmergencyType, List<Ambulance>> entry : ambulances.entrySet()) {
for (Ambulance ambulance : entry.getValue()) {
if (ambulance.getId().equals(id)){
return ambulance;
}
}
}
return null;
}
public static Hospital getHospitalById(Long id){
for (Hospital hospital : hospitals) {
if (hospital.getId().equals(id)){
return hospital;
}
}
return null;
}
public static final Map<DoctorSpeciality, List<Doctor>> doctors = new HashMap<DoctorSpeciality, List<Doctor>>() {
{
put(DoctorSpeciality.BURNS, new ArrayList<Doctor>() {
{
add(new Doctor(DoctorSpeciality.BURNS));
}
});
put(DoctorSpeciality.BONES, new ArrayList<Doctor>() {
{
add(new Doctor(DoctorSpeciality.BONES));
}
});
put(DoctorSpeciality.REANIMATION, new ArrayList<Doctor>() {
{
add(new Doctor(DoctorSpeciality.REANIMATION));
}
});
}
};
public static final List< Hospital> hospitals = new ArrayList<Hospital>(){{
add(new Hospital("Hospital 01", 11, 13));
add(new Hospital("Hospital 02", 35, 13));
add(new Hospital("Hospital 03", 17, 25));
}};
public static final Map<String, EmergencyEntityBuilding> buildings = new HashMap<String, EmergencyEntityBuilding>(){{
put("911", new EmergencyServiceCentral("911", 2, 25));
put("Police Department", new PoliceDepartment("Police Department", 15,7));
put("Firefighters Department", new FirefightersDepartment("Firefighters Department", 35,25));
}};
public static Hospital getHospitalByCoordinates(float x, float y) {
float newx = Math.round(x/16);
float newy = Math.round(x/16);
for(Hospital thishospital : CityEntities.hospitals){
if(thishospital.getX() == newx && thishospital.getY() == newy){
return thishospital;
}
}
return null;
}
public static String translatePosition(int x, int y){
String xString = "";
String yString = "";
switch(x){
case 2: xString = "1st Street"; break;
case 7: xString = "2nd Street"; break;
case 13: xString = "3rd Street"; break;
case 19: xString = "4th Street"; break;
case 25: xString = "5th Street"; break;
case 31: xString = "6th Street"; break;
case 37: xString = "7th Street"; break;
}
switch(y){
case 2: yString = "A Street"; break;
case 7: yString = "B Street"; break;
case 13: yString = "C Street"; break;
case 19: yString = "D Street"; break;
case 25: yString = "E Street"; break;
}
if(xString.equals("") || yString.equals("")){
return "N/A";
}
return ""+xString +" and "+yString;
}
private static Ambulance initializeFireAmbulance() {
MedicalKit fireKit = MedicalKitUtil.createNewMEdicalKit(DoctorSpeciality.BURNS);
Ambulance fireAmbulance = new Ambulance("Fire Ambulance");
fireAmbulance.addKit(fireKit);
return fireAmbulance;
}
private static Ambulance initializeHeartAttackAmbulance() {
MedicalKit heartAttackKit = MedicalKitUtil.createNewMEdicalKit(DoctorSpeciality.REANIMATION);
Ambulance heartAttackAmbulance = new Ambulance("Strokes Ambulance");
heartAttackAmbulance.addKit(heartAttackKit);
return heartAttackAmbulance;
}
private static Ambulance initializeCarCrashAmbulance() {
MedicalKit carCrashKit1 = MedicalKitUtil.createNewMEdicalKit(DoctorSpeciality.BONES);
MedicalKit carCrashKit2 = MedicalKitUtil.createNewMEdicalKit(DoctorSpeciality.BURNS);
Ambulance carCrashAmbulance = new Ambulance("Fire & Bones Ambulance");
carCrashAmbulance.addKit(carCrashKit1);
carCrashAmbulance.addKit(carCrashKit2);
return carCrashAmbulance;
}
private static FireTruck initializeBigFireTruck() {
FireTruck bigFireTruck = new FireTruck("Big Fire Truck");
bigFireTruck.setTankSize(10);
bigFireTruck.setTankLevel(10);
return bigFireTruck;
}
private static FireTruck initializeMediumFireTruck() {
FireTruck mediumFireTruck = new FireTruck("Medium Fire Truck");
mediumFireTruck.setTankSize(5);
mediumFireTruck.setTankLevel(5);
return mediumFireTruck;
}
private static FireTruck initializeSmallFireTruck() {
FireTruck smallFireTruck = new FireTruck("Small Fire Truck");
smallFireTruck.setTankSize(2);
smallFireTruck.setTankLevel(2);
return smallFireTruck;
}
public static Ambulance getAmbulanceById(EmergencyType type, String id) {
for (Ambulance ambulancenow : CityEntities.ambulances.get(type)) {
if (ambulancenow.getId().equals(id)) {
return ambulancenow;
}
}
return null;
}
}