Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/AbstractTagRegistry.java')
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/AbstractTagRegistry.java149
1 files changed, 0 insertions, 149 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/AbstractTagRegistry.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/AbstractTagRegistry.java
deleted file mode 100644
index 50d932830..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/AbstractTagRegistry.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 Oracle 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:
- * Oracle Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsf.designtime.internal.view.model;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jst.jsf.common.internal.RunOnCompletionPattern;
-import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.Namespace;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-
-/**
- * The abstract registry that all implementations of ITagRegistry should
- * sub-class.
- *
- * @author cbateman
- *
- */
-public abstract class AbstractTagRegistry implements ITagRegistry
-{
- private final List<ITagRegistryListener> _listeners;
- private final AtomicBoolean _isDisposed = new AtomicBoolean(
- false);
-
- /**
- *
- */
- protected AbstractTagRegistry()
- {
- super();
- _listeners = new CopyOnWriteArrayList<ITagRegistryListener>();
- }
-
- public final void addListener(final ITagRegistryListener listener)
- {
- if (!_listeners.contains(listener))
- {
- _listeners.add(listener);
- }
- }
-
- public final void removeListener(final ITagRegistryListener listener)
- {
- _listeners.remove(listener);
- }
-
- /**
- * @param event
- */
- protected final void fireEvent(final TagRegistryChangeEvent event)
- {
- for (final ITagRegistryListener listener : _listeners)
- {
- try
- {
- listener.registryChanged(event);
- }
- catch (final Exception e)
- {
- JSFCorePlugin.log(new Exception(e),
- "During change event notification"); //$NON-NLS-1$
- }
- }
- }
-
- public abstract Collection<? extends Namespace> getAllTagLibraries();
-
- public abstract Namespace getTagLibrary(String uri);
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.jsf.designtime.internal.view.model.jsp.registry.ITagRegistry#isDisposed()
- */
- public final boolean isDisposed()
- {
- return _isDisposed.get();
- }
-
- /**
- *
- */
- public final void destroy()
- {
- cleanupPersistentState();
- dispose();
- }
-
- /**
- * Called by destroy before it calls dispose. Sub-class should
- * invalidate, and ideally delete, any persistent state.
- *
- * NOTE: DO NOT call dispose functionality from this call. The framework
- * will call dispose() immediately after cleanupPersistentState.
- */
- protected abstract void cleanupPersistentState();
-
- /**
- * Must be factories or caches when disposing the registry. Instances
- * must implement doDispose to provide their specific disposal operations.
- */
- public final void dispose()
- {
- // latch on the isDisposed flag so this block can only ever
- // execute once
- if (_isDisposed.compareAndSet(false, true))
- {
- fireEvent(new TagRegistryChangeEvent(this,
- TagRegistryChangeEvent.EventType.REGISTRY_DISPOSED));
- doDispose();
- }
- }
-
- /**
- * Implement with instance specific disposal operations. Do do not fire
- * the REGISTRY_DISPOSED event from this method (it is done in dispose.
- *
- * Implementer must assume that this method be called at most once and that
- * it is error to access the registry instance after it is called
- */
- protected abstract void doDispose();
-
- public final void refresh(final Runnable runAfter, final boolean flushCaches)
- {
- final Job refreshJob = getRefreshJob(flushCaches);
-
- final RunOnCompletionPattern runPattern = new RunOnCompletionPattern(
- refreshJob, runAfter);
- runPattern.run();
- }
-
- /**
- * @param flushCaches
- * @return a job that, when run, will perform the registry refresh. Job
- * must do any necessary synchronizing of internal state.
- */
- protected abstract Job getRefreshJob(final boolean flushCaches);
-}

Back to the top