Package org.jboss.as.console.client.tools

Source Code of org.jboss.as.console.client.tools.LocalFXStorage

package org.jboss.as.console.client.tools;

import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.storage.client.Storage;
import com.google.gwt.storage.client.StorageMap;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

/**
* @author Heiko Braun
* @date 7/23/12
*/
public class LocalFXStorage implements FXStorage {

    private Map<String,String> delegate;

    public LocalFXStorage() {
        Storage storage = Storage.getLocalStorageIfSupported();

        if(null==storage)
        {
            Log.warn("Local storage not supported");
            this.delegate = new HashMap<String,String>();
        }
        else
        {
            this.delegate = new StorageMap(storage);
        }

    }

    @Override
    public Set<FXTemplate> loadTemplates() {
        final Set<String> keys = delegate.keySet();
        HashSet<FXTemplate> templates = new HashSet<FXTemplate>();

        for(String key : keys)
        {
            final String encoded = delegate.get(key);
            final FXTemplate template = FXTemplate.fromBase64(encoded);
            templates.add(template);
        }

        return templates;
    }

    @Override
    public FXTemplate loadTemplate(String id) {
        final String encoded = delegate.get(id);
        return FXTemplate.fromBase64(encoded);
    }

    @Override
    public void storeTemplate(FXTemplate template) {
        if(null==template.getId())
            throw new IllegalArgumentException("Templates required a unique ID!");
        delegate.put(template.getId(), template.toBase64());
    }

    @Override
    public void removeTemplate(String id) {
        delegate.remove(id);
    }
}
TOP

Related Classes of org.jboss.as.console.client.tools.LocalFXStorage

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.