package de.swm.gwt.client.testhelper; import com.google.gwt.core.client.GWT; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.storage.client.StorageEvent; import com.google.gwt.user.client.rpc.AsyncCallback; import de.swm.gwt.client.mobile.keystore.IStorageOperationCompleted; import de.swm.gwt.client.mobile.keystore.IStorage; import de.swm.gwt.client.mobile.keystore.ITransaction; import org.junit.Ignore; import java.util.HashMap; import java.util.Map; import java.util.Set; /** * Testimplementierung das Local Storage. * * @author wiese.daniel * <br> * copyright (C) 2012, Stadtwerke München GmbH */ @Ignore public class SwmTestStorage implements IStorage { private Map<String, String> storage = new HashMap<String, String>(); @Override public ITransaction beginTransaction() { throw new IllegalArgumentException("Usupported Operation Use: TransactionStorage"); } @Override public void addUncaughtExceptionHanlder(GWT.UncaughtExceptionHandler uncaughtExceptionHandler) { } @Override public void initialize(final AsyncCallback<Void> voidAsyncCallback) { voidAsyncCallback.onSuccess(null); } /** * Registriert einen Handler für die StorageEvents. * * @param handler . * @return . */ @Override public HandlerRegistration addStorageEventHandler(StorageEvent.Handler handler) { return null; } /** * Liefert den local Storage zurück. * * @return . */ @Override public IStorage getLocalStorageIfSupported() { return this; } /** * Prüft ob local storage vorhanden ist. * * @return true - wenn ja,false - wenn nein */ @Override public boolean isLocalStorageSupported() { return true; } /** * Löscht einen bestimmten Handler, der auf StorageEvents horcht. * * @param handler . */ @Override public void removeStorageEventHandler(StorageEvent.Handler handler) { } /** * Löscht den Inhalt der Storage. */ @Override public void clear() { storage.clear(); } /** * Holt die Daten für einen bestimmten Schlüssel. * * @param key . * @return . */ @Override public String getItem(String key) { return storage.get(key); } /** * Gibt die Anzahl der gespeicherten Elemente zurück. * * @return . */ @Override public int getLength() { return storage.keySet().size(); } /** * Liefert den Schlüssel an einer bestimmten Position zurück. * * @param index . * @return . */ @Override public String key(int index) { throw new IllegalArgumentException("Not supported"); } /** * Löscht den Wert für einen bestimmten Schlüssel. * * @param key . */ @Override public void removeItem(String key) { storage.remove(key); } /** * Speichert einen String für einen bestimmten Schlüssel (überschreibt falls vorhanden). * * @param key . * @param data . */ @Override public void setItem(String key, String data) { storage.put(key, data); } /** * Will delete the underlying storage asynchronously. * * @param callback callback when completed */ @Override public void clearAsync(IStorageOperationCompleted callback) { clear(); callback.isCompleted(); } /** * @param keys the keys to delete. * @param callback callback when completed */ @Override public void removeItemsAsync(Set<String> keys, IStorageOperationCompleted callback) { for (String key : keys) { removeItem(key); } callback.isCompleted(); } /** * @param values the values to store. * @param callback callback when completed */ @Override public void setItemsAsync(Map<String, String> values, IStorageOperationCompleted callback) { for (String key : values.keySet()) { setItem(key, values.get(key)); } callback.isCompleted(); } @Override public Set<String> getKeys() { return storage.keySet(); } }