Package com.wordpress.salaboy.model.persistence

Source Code of com.wordpress.salaboy.model.persistence.DistributedMapPeristenceService

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.wordpress.salaboy.model.persistence;



import com.wordpress.salaboy.context.tracking.ContextTrackingProvider;
import com.wordpress.salaboy.context.tracking.ContextTrackingService;
import com.wordpress.salaboy.model.*;
import com.wordpress.salaboy.reporting.Report;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import org.infinispan.Cache;
import org.infinispan.config.Configuration;
import org.infinispan.config.GlobalConfiguration;
import org.infinispan.manager.DefaultCacheManager;
import org.infinispan.manager.EmbeddedCacheManager;

/**
*
* @author salaboy
*/
public class DistributedMapPeristenceService implements PersistenceService {
  
    private DefaultCacheManager cacheManager;
    private ContextTrackingService contextTracking;

    public DistributedMapPeristenceService() {
        GlobalConfiguration globalConf = GlobalConfiguration.getClusteredDefault();
        Configuration cfg = new Configuration();
        cfg.setCacheMode(Configuration.CacheMode.DIST_SYNC);
        cfg.setNumOwners(3);
        cacheManager = new DefaultCacheManager(globalConf, cfg);
        contextTracking = ContextTrackingProvider.getTrackingService();

    }

    public EmbeddedCacheManager getCacheManager() {
        return cacheManager;
    }
   
    // Stores

    @Override
    public void storeEmergency(Emergency emergency) {
        if (emergency.getId() == null || emergency.getId().equals("")) {
            emergency.setId(contextTracking.newEmergencyId());
        }
        if (this.getCache().get("emergencies") == null) {
            getCache().put("emergencies", new HashMap<String, Emergency>());
        }
        Map<String, Emergency> emergencies = ((Map<String, Emergency>) this.getCache().get("emergencies"));
        emergencies.put(emergency.getId(), emergency);
        this.getCache().put("emergencies", emergencies);
    }

    @Override
    public void storeVehicle(Vehicle vehicle) {
        if (vehicle.getId() == null || vehicle.getId().equals("")) {
            vehicle.setId(contextTracking.newVehicleId());
        }
        if (this.getCache().get("vehicles") == null) {
            getCache().put("vehicles", new HashMap<String, Vehicle>());
        }
        Map<String, Vehicle> vehicles = ((Map<String, Vehicle>) this.getCache().get("vehicles"));
        vehicles.put(vehicle.getId(), vehicle);
        this.getCache().put("vehicles", vehicles);

    }

    @Override
    public void storePatient(Patient patient) {
        if (patient.getId() == null || patient.getId().equals("")) {
            patient.setId(contextTracking.newPatientId());
        }
        if (this.getCache().get("patients") == null) {
            getCache().put("patients", new HashMap<String, Patient>());
        }
        Map<String, Patient> patients = ((Map<String, Patient>) this.getCache().get("patients"));
        patients.put(patient.getId(), patient);
        this.getCache().put("hospitals", patients);
    }

    @Override
    public void storeHospital(Hospital hospital) {
        if (hospital.getId() == null || hospital.getId().equals("")) {
            hospital.setId(contextTracking.newEmergencyEntityBuildingId());
        }
        if (this.getCache().get("hospitals") == null) {
            getCache().put("hospitals", new HashMap<String, Hospital>());
        }
        Map<String, Hospital> hospitals = ((Map<String, Hospital>) this.getCache().get("hospitals"));
        hospitals.put(hospital.getId(), hospital);
        this.getCache().put("hospitals", hospitals);

    }

    @Override
    public void storeCall(Call call) {
        if (call.getId() == null || call.getId().equals("")) {
            call.setId(contextTracking.newCallId());
        }
        if (this.getCache().get("calls") == null) {
            getCache().put("calls", new HashMap<Long, Emergency>());
        }
        Map<String, Call> calls = ((Map<String, Call>) this.getCache().get("calls"));
        calls.put(call.getId(), call);
        this.getCache().put("calls", calls);
    }

    @Override
    public void storeFirefightersDepartment(FirefightersDepartment firefightersDepartment) {
        if (firefightersDepartment.getId() == null || firefightersDepartment.getId().equals("")) {
            firefightersDepartment.setId(contextTracking.newEmergencyEntityBuildingId());
        }
        if (this.getCache().get("firefightersDepartments") == null) {
            getCache().put("firefightersDepartments", new HashMap<String, FirefightersDepartment>());
        }
        Map<String, FirefightersDepartment> firefightersDepartments = ((Map<String, FirefightersDepartment>) this.getCache().get("firefightersDepartments"));
        firefightersDepartments.put(firefightersDepartment.getId(), firefightersDepartment);
        this.getCache().put("firefightersDepartments", firefightersDepartments);

    }

    @Override
    public void storeProcedure(Procedure procedure) {
        if (procedure.getId() == null || procedure.getId().equals("")) {
            procedure.setId(contextTracking.newProcedureId());
        }
        if (this.getCache().get("procedures") == null) {
            getCache().put("procedures", new HashMap<String, Procedure>());
        }
        Map<String, Procedure> procedures = ((Map<String, Procedure>) this.getCache().get("procedures"));
        procedures.put(procedure.getId(), procedure);
        this.getCache().put("procedures", procedures);
    }

    @Override
    public void storeServiceChannel(ServiceChannel channel) {
        if (channel.getId() == null || channel.getId().equals("")) {
            channel.setId(contextTracking.newServiceChannelId());
        }
        if (this.getCache().get("channels") == null) {
            getCache().put("channels", new HashMap<String, ServiceChannel>());
        }
        Map<String, ServiceChannel> channels = ((Map<String, ServiceChannel>) this.getCache().get("channels"));
        channels.put(channel.getId(), channel);
        this.getCache().put("channels", channels);
    }

    //Loads
    @Override
    public Emergency loadEmergency(String id) {
        if (this.getCache().get("emergencies") == null) {
            getCache().put("emergencies", new HashMap<String, Emergency>());
        }
        return ((Map<String, Emergency>) this.getCache().get("emergencies")).get(id);
    }

    @Override
    public Vehicle loadVehicle(String id) {
        if (this.getCache().get("vehicles") == null) {
            getCache().put("vehicles", new HashMap<String, Vehicle>());
        }
        return ((Map<String, Vehicle>) this.getCache().get("vehicles")).get(id);
    }

    @Override
    public Patient loadPatient(String id) {
        if (this.getCache().get("patients") == null) {
            getCache().put("patients", new HashMap<String, Patient>());
        }
        return ((Map<String, Patient>) this.getCache().get("patients")).get(id);
    }

    @Override
    public Hospital loadHospital(String id) {
        if (this.getCache().get("hospitals") == null) {
            getCache().put("hospitals", new HashMap<String, Hospital>());
        }
        return ((Map<String, Hospital>) this.getCache().get("hospitals")).get(id);
    }

    @Override
    public Report loadReport(String callId) {
        if (this.getCache().get("reports") == null) {
            getCache().put("reports", new HashMap<Long, Report>());
        }
        if (((Map<String, Report>) getCache().get("reports")).get(callId) == null) {
            ((Map<String, Report>) getCache().get("reports")).put(callId, new Report());
        }
        return ((Map<String, Report>) getCache().get("reports")).get(callId);
    }

    @Override
    public Call loadCall(String id) {
        if (this.getCache().get("calls") == null) {
            getCache().put("calls", new HashMap<String, Call>());
        }
        return ((Map<String, Call>) this.getCache().get("calls")).get(id);
    }

    @Override
    public FirefightersDepartment loadFirefighterDepartment(String id) {
        if (this.getCache().get("firefightersDepartments") == null) {
            getCache().put("firefightersDepartments", new HashMap<String, FirefightersDepartment>());
        }
        return ((Map<String, FirefightersDepartment>) this.getCache().get("firefightersDepartments")).get(id);
    }

    @Override
    public Procedure loadProcedure(String procedureId) {
        if (this.getCache().get("procedures") == null) {
            getCache().put("procedures", new HashMap<String, Procedure>());
        }
        return ((Map<String, Procedure>) this.getCache().get("procedures")).get(procedureId);
    }

    @Override
    public ServiceChannel loadServiceChannel(String channelId) {
        if (this.getCache().get("channels") == null) {
            getCache().put("channels", new HashMap<String, ServiceChannel>());
        }
        return ((Map<String, ServiceChannel>) this.getCache().get("channels")).get(channelId);
    }

    //GET ALLs
    @Override
    public Collection<Procedure> getAllProcedures() {
        if (this.getCache().get("procedures") == null) {
            getCache().put("procedures", new HashMap<String, Procedure>());
        }
        return new ArrayList<Procedure>(((Map<String, Procedure>) this.getCache().get("procedures")).values());
    }
    @Override
    public Collection<Call> getAllCalls() {
        if (this.getCache().get("calls") == null) {
            getCache().put("calls", new HashMap<String, Call>());
        }
        return new ArrayList<Call>(((Map<String, Call>) this.getCache().get("calls")).values());
    }
   
    @Override
    public Collection<Vehicle> getAllVehicles() {
        if (this.getCache().get("vehicles") == null) {
            getCache().put("vehicles", new HashMap<String, Vehicle>());
        }
        return new ArrayList<Vehicle>(((Map<String, Vehicle>) this.getCache().get("vehicles")).values());
    }

    @Override
    public Collection<Hospital> getAllHospitals() {
        if (this.getCache().get("hospitals") == null) {
            getCache().put("hospitals", new HashMap<String, Hospital>());
        }
        return ((Map<String, Hospital>) this.getCache().get("hospitals")).values();
    }

    @Override
    public Collection<FirefightersDepartment> getAllFirefighterDepartments() {
        if (this.getCache().get("firefightersDepartments") == null) {
            getCache().put("firefightersDepartments", new HashMap<Long, FirefightersDepartment>());
        }
        return ((Map<Long, FirefightersDepartment>) this.getCache().get("firefightersDepartments")).values();
    }

    @Override
    public Collection<Emergency> getAllEmergencies() {
        if (getCache().get("emergencies") == null) {
            getCache().put("emergencies", new HashMap<Long, Emergency>());
        }
        return ((Map<String, Emergency>) getCache().get("emergencies")).values();
    }

    //Helpers
    @Override
    public void addEntryToReport(String callId, String entry) {
        if (this.getCache().get("reports") == null) {
            getCache().put("reports", new HashMap<String, Report>());
        }
        if (((Map<String, Report>) getCache().get("reports")).get(callId) == null) {
            ((Map<String, Report>) getCache().get("reports")).put(callId, new Report());
        }
        Map<String, Report> reports = ((Map<String, Report>) this.getCache().get("reports"));
        reports.get(callId).addEntry(entry);
        this.getCache().put("reports", reports);

    }

    private Cache<String, Object> getCache() {
        return cacheManager.getCache();
    }

    @Override
    public void clear() {
        this.cacheManager.stop();
        this.contextTracking.clear();
        this.contextTracking = null;
        this.cacheManager = null;
    }

   
}
TOP

Related Classes of com.wordpress.salaboy.model.persistence.DistributedMapPeristenceService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.