Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.net4j.buddies.common/src/org/eclipse/net4j/buddies/internal/common/MembershipContainer.java')
-rw-r--r--plugins/org.eclipse.net4j.buddies.common/src/org/eclipse/net4j/buddies/internal/common/MembershipContainer.java121
1 files changed, 0 insertions, 121 deletions
diff --git a/plugins/org.eclipse.net4j.buddies.common/src/org/eclipse/net4j/buddies/internal/common/MembershipContainer.java b/plugins/org.eclipse.net4j.buddies.common/src/org/eclipse/net4j/buddies/internal/common/MembershipContainer.java
deleted file mode 100644
index 88ce8da4c3..0000000000
--- a/plugins/org.eclipse.net4j.buddies.common/src/org/eclipse/net4j/buddies/internal/common/MembershipContainer.java
+++ /dev/null
@@ -1,121 +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.buddies.internal.common;
-
-import org.eclipse.net4j.buddies.common.IBuddy;
-import org.eclipse.net4j.buddies.common.ICollaboration;
-import org.eclipse.net4j.buddies.common.IMembership;
-import org.eclipse.net4j.buddies.common.IMembershipContainer;
-import org.eclipse.net4j.buddies.common.IMembershipKey;
-import org.eclipse.net4j.util.container.IContainerDelta;
-import org.eclipse.net4j.util.container.SingleDeltaContainerEvent;
-import org.eclipse.net4j.util.event.IEvent;
-import org.eclipse.net4j.util.event.IListener;
-import org.eclipse.net4j.util.lifecycle.ILifecycleEvent;
-import org.eclipse.net4j.util.lifecycle.Lifecycle;
-
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-/**
- * @author Eike Stepper
- */
-public class MembershipContainer extends Lifecycle implements IMembershipContainer, IListener
-{
- private ConcurrentMap<IMembershipKey, IMembership> memberships = new ConcurrentHashMap<IMembershipKey, IMembership>();
-
- public MembershipContainer()
- {
- }
-
- public void addMembership(IMembership membership)
- {
- if (memberships.putIfAbsent(membership, membership) == null)
- {
- fireEvent(new SingleDeltaContainerEvent<IMembership>(this, membership, IContainerDelta.Kind.ADDED));
- membership.addListener(this);
- }
- }
-
- public IMembership removeMembership(IBuddy buddy, ICollaboration collaboration)
- {
- return removeMembership(new MembershipKey(buddy, collaboration));
- }
-
- public IMembership removeMembership(IMembershipKey key)
- {
- // for (IMembership membership : memberships.values())
- // {
- //
- // }
- //
- IMembership membership = memberships.remove(key);
- if (membership != null)
- {
- membership.removeListener(this);
- fireEvent(new SingleDeltaContainerEvent<IMembership>(this, membership, IContainerDelta.Kind.REMOVED));
- }
-
- return membership;
- }
-
- public IMembership[] getMemberships()
- {
- return memberships.values().toArray(new IMembership[memberships.size()]);
- }
-
- public IMembership getMembership(IBuddy buddy, ICollaboration collaboration)
- {
- return memberships.get(new MembershipKey(buddy, collaboration));
- }
-
- public IMembership[] getElements()
- {
- return getMemberships();
- }
-
- public boolean isEmpty()
- {
- return memberships.isEmpty();
- }
-
- public void notifyEvent(IEvent event)
- {
- if (event.getSource() instanceof IMembership)
- {
- IMembership membership = (IMembership)event.getSource();
- notifyMembershipEvent(event);
- if (event instanceof ILifecycleEvent)
- {
- ILifecycleEvent e = (ILifecycleEvent)event;
- if (e.getKind() == ILifecycleEvent.Kind.DEACTIVATED)
- {
- removeMembership(membership);
- }
- }
- }
- }
-
- protected void notifyMembershipEvent(IEvent event)
- {
- }
-
- @Override
- protected void doDeactivate() throws Exception
- {
- for (IMembership membership : getMemberships())
- {
- membership.removeListener(this);
- }
-
- super.doDeactivate();
- }
-}

Back to the top