diff options
author | Eike Stepper | 2008-06-03 09:49:12 +0000 |
---|---|---|
committer | Eike Stepper | 2008-06-03 09:49:12 +0000 |
commit | 2619c1cedc61c1a7b34cbe4f9113173c47ff93c9 (patch) | |
tree | 7a23da2fa417054c98477bd8e0902bed51318edf /plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/concurrent/SynchronizingCorrelator.java | |
parent | f5271bed64f88809e457b907f507966235ce44ed (diff) | |
download | cdo-2619c1cedc61c1a7b34cbe4f9113173c47ff93c9.tar.gz cdo-2619c1cedc61c1a7b34cbe4f9113173c47ff93c9.tar.xz cdo-2619c1cedc61c1a7b34cbe4f9113173c47ff93c9.zip |
[234041] Prepare graduation
https://bugs.eclipse.org/bugs/show_bug.cgi?id=234041
Diffstat (limited to 'plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/concurrent/SynchronizingCorrelator.java')
-rw-r--r-- | plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/concurrent/SynchronizingCorrelator.java | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/concurrent/SynchronizingCorrelator.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/concurrent/SynchronizingCorrelator.java deleted file mode 100644 index 31d26540d9..0000000000 --- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/concurrent/SynchronizingCorrelator.java +++ /dev/null @@ -1,106 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2004 - 2008 Eike Stepper, Germany. - * 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: - * Eike Stepper - initial API and implementation - **************************************************************************/ -package org.eclipse.net4j.internal.util.concurrent; - -import org.eclipse.net4j.util.concurrent.ICorrelator; -import org.eclipse.net4j.util.concurrent.ISynchronizer; - -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; - -/** - * @author Eike Stepper - */ -public class SynchronizingCorrelator<CORRELATION, RESULT> implements ICorrelator<CORRELATION, ISynchronizer<RESULT>> -{ - private ConcurrentMap<CORRELATION, ISynchronizer<RESULT>> map = new ConcurrentHashMap<CORRELATION, ISynchronizer<RESULT>>( - 0); - - public boolean isCorrelated(CORRELATION correlation) - { - return map.containsKey(correlation); - } - - public ISynchronizer<RESULT> correlate(CORRELATION correlation) - { - ISynchronizer<RESULT> synchronizer = map.get(correlation); - if (synchronizer == null) - { - synchronizer = createSynchronizer(correlation); - map.put(correlation, synchronizer); - } - - return synchronizer; - } - - public ISynchronizer<RESULT> correlateUnique(CORRELATION correlation) - { - ISynchronizer<RESULT> synchronizer = createSynchronizer(correlation); - if (map.putIfAbsent(correlation, synchronizer) != null) - { - throw new IllegalStateException("Already correlated: " + correlation); //$NON-NLS-1$ - } - - return synchronizer; - } - - public ISynchronizer<RESULT> uncorrelate(CORRELATION correlation) - { - return map.remove(correlation); - } - - public RESULT get(CORRELATION correlation, long timeout) - { - return correlate(correlation).get(timeout); - } - - public void put(CORRELATION correlation, RESULT result) - { - correlate(correlation).put(result); - } - - public boolean put(CORRELATION correlation, RESULT result, long timeout) - { - return correlate(correlation).put(result, timeout); - } - - protected ISynchronizer<RESULT> createSynchronizer(final CORRELATION correlation) - { - // TODO Make top level class - return new ISynchronizer<RESULT>() - { - private ISynchronizer<RESULT> delegate = new ResultSynchronizer<RESULT>(); - - public RESULT get(long timeout) - { - RESULT result = delegate.get(timeout); - uncorrelate(correlation); - return result; - } - - public void put(RESULT result) - { - delegate.put(result); - } - - public boolean put(RESULT result, long timeout) - { - return delegate.put(result, timeout); - } - }; - } - - @Override - public String toString() - { - return "SynchronizingCorrelator" + map; - } -} |