package org.xmind.ui.internal.editor;
import java.net.URI;
import java.util.Map;
import java.util.WeakHashMap;
import org.eclipse.ui.IMemento;
import org.xmind.ui.mindmap.IWorkbookRef;
import org.xmind.ui.mindmap.IWorkbookRefFactory;
public class LocalFileWorkbookRefFactory implements IWorkbookRefFactory {
private Map<IWorkbookRef, URI> reversedCache = new WeakHashMap<IWorkbookRef, URI>();
public LocalFileWorkbookRefFactory() {
}
public IWorkbookRef createWorkbookRef(URI uri, IMemento state) {
if (uri == null)
return null;
for (IWorkbookRef wr : reversedCache.keySet()) {
if (uri.equals(wr.getURI()))
return wr;
}
IWorkbookRef wr = new LocalFileWorkbookRef(uri, state);
reversedCache.put(wr, uri);
return wr;
}
}