/** * Copyright 2008-2016 Qualogy Solutions B.V. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.qualogy.qafe.mgwt.server.helper; import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.logging.Logger; import com.qualogy.qafe.bind.core.application.ApplicationIdentifier; import com.qualogy.qafe.bind.domain.ApplicationMapping; import com.qualogy.qafe.mgwt.client.vo.ui.UIGVO; public class ApplicationStore { public final static Logger logger = Logger.getLogger(ApplicationStore.class.getName()); private Map<String,UIGVO> guiMap = Collections.synchronizedMap( new HashMap<String,UIGVO>(17)); private Map<String,ApplicationIdentifier> appIdMap = Collections.synchronizedMap(new HashMap<String,ApplicationIdentifier>(17)); private Map<String,ApplicationMapping> applicationMappingMap = Collections.synchronizedMap(new HashMap<String,ApplicationMapping>(17)); private static ApplicationStore singleton = null; public Map<String,UIGVO> getGUIMap(){ return guiMap; } public Map<String,ApplicationMapping> getApplicationMappingMap(){ return applicationMappingMap; } private ApplicationStore(){}; public synchronized static ApplicationStore getInstance(){ if (singleton==null){ singleton = new ApplicationStore(); } return singleton; } public String storeUI(UIGVO ui){ if (ui!=null){ String appId = ui.getAppId(); ui.setUuid(appId); Map<String,UIGVO> map = getGUIMap(); if (!map.containsKey(appId)){ map.put(appId, ui); } return appId; } else { return null; } } public String storeApplicationMapping(ApplicationMapping am,String uuid){ Map<String,ApplicationMapping> map = getApplicationMappingMap(); if (!map.containsKey(uuid)){ //ui.setUUID(uuid); map.put(uuid, am); } else { logger.warning("This uuid "+ uuid + "\t is not unique (either being reused or crappy generator"); } return uuid; } public ApplicationMapping retrieveApplicationMapping(String uuid){ Map<String,ApplicationMapping> map = getApplicationMappingMap(); ApplicationMapping am = (ApplicationMapping)map.get(uuid); if (am==null){ logger.warning("No applicationMapping found for UUID " + uuid +" in ApplicationMapping map" ); } return am; } public UIGVO retrieveUI(String uuid){ Map<String,UIGVO> map = getGUIMap(); UIGVO ui = (UIGVO)map.get(uuid); if (ui==null){ logger.warning("No UI found for UUID " + uuid); } return ui; } public void store(String uuid, ApplicationIdentifier appId){ Map<String,ApplicationIdentifier> map = getAppIdMap(); if (!map.containsKey(uuid)){ map.put(uuid,appId); } else { logger.warning("This uuid "+ uuid + "\t is not unique (either being reused or crappy generator"); } } public ApplicationIdentifier getApplicationId(String uuid){ ApplicationIdentifier appId=null; Map<String,ApplicationIdentifier> map = getAppIdMap(); if (map.containsKey(uuid)){ appId = ((ApplicationIdentifier)(map.get(uuid))); } return appId; } public Map<String,ApplicationIdentifier> getAppIdMap() { return appIdMap; } // public void clear(List<String> uuids) { // if (uuids!=null){ // Map<String,UIGVO> map = getGUIMap(); // Map<String,ApplicationMapping> appMappingMap = getApplicationMappingMap(); // logger.debug("BEFORE: guiMap size=" + map.size() + ", appmap size="+appMappingMap.size()); // for (String string : uuids) { // if (map.containsKey(string)){ // map.remove(string); // } // if (appMappingMap.containsKey(string)){ // appMappingMap.remove(string); // } // presentationService.clearApplicationLocalStore(string); // } // // logger.debug("AFTER: guiMap size=" + map.size() + ", appmap size="+appMappingMap.size()); // } // } }