package com.akjava.gwt.lib.client.storage; import java.util.HashMap; import java.util.Map; import com.akjava.gwt.lib.client.IStorageControler; import com.akjava.lib.common.utils.ValuesUtils; public class MemoryStorageControler implements IStorageControler{ private StorageValueChangeListener listener; public StorageValueChangeListener getListener() { return listener; } public void setListener(StorageValueChangeListener listener) { this.listener = listener; } private Map<String,String> map=new HashMap<String, String>(); public void setMap(Map<String, String> map) { this.map = map; } public Map<String, String> getMap() { return map; } @Override public boolean isAvailable() { return true; } @Override public void setValue(String key, String value) { map.put(key, value); if(listener!=null){ listener.onValueChanged(key,value); } } @Override public void setValue(String key, int value) { map.put(key, ""+value); if(listener!=null){ listener.onValueChanged(key, ""+value); } } @Override public void removeValue(String key) { map.remove(key); if(listener!=null){ listener.onValueChanged(key, null); } } @Override public int getValue(String key, int defaultValue) { // TODO Auto-generated method stub return ValuesUtils.toInt(map.get(key), defaultValue); } @Override public String getValue(String key, String defaultValue) { String v=map.get(key); if(v==null){ v=defaultValue; } return v; } public interface StorageValueChangeListener{ public void onValueChanged(String key,String value); } }