package com.salesmanager.core.business.services.reference.loader; import java.util.HashMap; import java.util.List; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.databind.ObjectMapper; import com.salesmanager.core.business.exception.ServiceException; import com.salesmanager.core.model.system.IntegrationConfiguration; /** * Loads all modules in the database * @author c.samson * */ public class ConfigurationModulesLoader { @SuppressWarnings("unused") private static final Logger LOGGER = LoggerFactory.getLogger(ConfigurationModulesLoader.class); public static String toJSONString(Map<String,IntegrationConfiguration> configurations) throws Exception { StringBuilder jsonModules = new StringBuilder(); jsonModules.append("["); int count = 0; for(Object key : configurations.keySet()) { String k = (String)key; IntegrationConfiguration c = (IntegrationConfiguration)configurations.get(k); String jsonString = c.toJSONString(); jsonModules.append(jsonString); count ++; if(count<configurations.size()) { jsonModules.append(","); } } jsonModules.append("]"); return jsonModules.toString(); } @SuppressWarnings({ "rawtypes", "unchecked" }) public static Map<String,IntegrationConfiguration> loadIntegrationConfigurations(String value) throws Exception { Map<String,IntegrationConfiguration> modules = new HashMap<String,IntegrationConfiguration>(); ObjectMapper mapper = new ObjectMapper(); try { Map[] objects = mapper.readValue(value, Map[].class); for(int i = 0; i < objects.length; i++) { Map object = objects[i]; IntegrationConfiguration configuration = new IntegrationConfiguration(); String moduleCode = (String)object.get("moduleCode"); if(object.get("active")!=null) { configuration.setActive((Boolean)object.get("active")); } if(object.get("defaultSelected")!=null) { configuration.setDefaultSelected((Boolean)object.get("defaultSelected")); } if(object.get("environment")!=null) { configuration.setEnvironment((String)object.get("environment")); } configuration.setModuleCode(moduleCode); modules.put(moduleCode, configuration); if(object.get("integrationKeys")!=null) { Map<String,String> confs = (Map<String,String> )object.get("integrationKeys"); configuration.setIntegrationKeys(confs); } if(object.get("integrationKeys")!=null) { Map<String,List<String>> options = (Map<String,List<String>> )object.get("integrationOptions"); configuration.setIntegrationOptions(options); } } return modules; } catch (Exception e) { throw new ServiceException(e); } } }