diff options
Diffstat (limited to 'bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCache.java')
-rw-r--r-- | bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCache.java | 203 |
1 files changed, 0 insertions, 203 deletions
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCache.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCache.java deleted file mode 100644 index 670ff531b4..0000000000 --- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCache.java +++ /dev/null @@ -1,203 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.xml.core.internal.contentmodel.util; - -import java.util.ArrayList; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument; - - - -/** - * - */ -public class CMDocumentCache -{ - public static final int STATUS_NOT_LOADED = 0; - public static final int STATUS_LOADING = 2; - public static final int STATUS_LOADED = 3; - public static final int STATUS_ERROR = 4; - - protected class Entry - { - public String uri; - public int status = STATUS_NOT_LOADED; - public float progress; - public CMDocument cmDocument; - - public Entry(String uri) - { - this.uri = uri; - } - - public Entry(String uri, int status, CMDocument cmDocument) - { - this.uri = uri; - this.status = status; - this.cmDocument = cmDocument; - } - } - - protected Hashtable hashtable; - protected List listenerList = new Vector(); - - - /** - * temporarily public until caching problem is solved - */ - public CMDocumentCache() - { - hashtable = new Hashtable(); - } - - public void addListener(CMDocumentCacheListener listener) - { - listenerList.add(listener); - } - - public void removeListener(CMDocumentCacheListener listener) - { - listenerList.remove(listener); - } - - /** - * - */ - public CMDocument getCMDocument(String grammarURI) - { - CMDocument result = null; - if (grammarURI != null) - { - Entry entry = (Entry)hashtable.get(grammarURI); - if (entry != null) - { - result = entry.cmDocument; - } - } - return result; - } - - /** - * - */ - public int getStatus(String grammarURI) - { - int result = STATUS_NOT_LOADED; - if (grammarURI != null) - { - Entry entry = (Entry)hashtable.get(grammarURI); - if (entry != null) - { - result = entry.status; - } - - } - return result; - } - - /** - * - */ - protected Entry lookupOrCreate(String grammarURI) - { - Entry entry = (Entry)hashtable.get(grammarURI); - if (entry == null) - { - entry = new Entry(grammarURI); - hashtable.put(grammarURI, entry); - } - return entry; - } - - - /** - * - */ - public void putCMDocument(String grammarURI, CMDocument cmDocument) - { - if (grammarURI != null && cmDocument != null) - { - Entry entry = lookupOrCreate(grammarURI); - int oldStatus = entry.status; - entry.status = STATUS_LOADED; - entry.cmDocument = cmDocument; - notifyCacheUpdated(grammarURI, oldStatus, entry.status, entry.cmDocument); - } - } - - /** - * - */ - public void setStatus(String grammarURI, int status) - { - if (grammarURI != null) - { - Entry entry = lookupOrCreate(grammarURI); - int oldStatus = entry.status; - entry.status = status; - notifyCacheUpdated(grammarURI, oldStatus, entry.status, entry.cmDocument); - } - } - - /** - * - */ - public void clear() - { - hashtable.clear(); - notifyCacheCleared(); - } - - /** - * - */ - protected void notifyCacheUpdated(String uri, int oldStatus, int newStatus, CMDocument cmDocument) - { - List list = new Vector(); - list.addAll(listenerList); - for (Iterator i = list.iterator(); i.hasNext(); ) - { - CMDocumentCacheListener listener = (CMDocumentCacheListener)i.next(); - listener.cacheUpdated(this, uri, oldStatus, newStatus, cmDocument); - } - } - - /** - * - */ - protected void notifyCacheCleared() - { - List list = new Vector(); - list.addAll(listenerList); - for (Iterator i = list.iterator(); i.hasNext(); ) - { - CMDocumentCacheListener listener = (CMDocumentCacheListener)i.next(); - listener.cacheCleared(this); - } - } - - public List getCMDocuments() - { - List list = new ArrayList(); - for (Iterator i = hashtable.values().iterator(); i.hasNext(); ) - { - Entry entry = (Entry)i.next(); - list.add(entry.cmDocument); - } - return list; - } -} |