/**************************************************************************** * Copyright (c) 2004 Composent, Inc. 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: * Composent, Inc. - initial API and implementation *****************************************************************************/ package org.eclipse.ecf.presence.roster; import java.util.*; import org.eclipse.ecf.core.user.IUser; import org.eclipse.ecf.presence.IPresenceContainerAdapter; /** * Base class implementation of {@link IRoster}. Subclasses may be created as * appropriate. * */ public class Roster extends RosterItem implements IRoster { protected List rosteritems; protected IUser rosterUser; protected IPresenceContainerAdapter presenceContainer; public Roster(IPresenceContainerAdapter pc, IUser user) { super(null, (user == null) ? "<unknown>" //$NON-NLS-1$ : ((user.getName() == null) ? user.getID().getName() : user.getName())); this.presenceContainer = pc; this.rosterUser = user; this.rosteritems = Collections.synchronizedList(new ArrayList()); } public Roster(IPresenceContainerAdapter presenceContainer) { this(presenceContainer, null); } /* * (non-Javadoc) * * @see org.eclipse.ecf.presence.roster.IRoster#getItems() */ public Collection getItems() { return rosteritems; } /* * (non-Javadoc) * * @see org.eclipse.ecf.presence.roster.IRosterItem#getName() */ public String getName() { return getUser().getName(); } /* * (non-Javadoc) * * @see org.eclipse.ecf.presence.roster.IRoster#getUser() */ public IUser getUser() { return rosterUser; } /* * (non-Javadoc) * * @see org.eclipse.ecf.presence.roster.IRoster#addItem(org.eclipse.ecf.presence.roster.IRosterItem) */ public boolean addItem(IRosterItem item) { if (item == null) return false; return rosteritems.add(item); } /* * (non-Javadoc) * * @see org.eclipse.ecf.presence.roster.IRoster#removeItem(org.eclipse.ecf.presence.roster.IRosterItem) */ public boolean removeItem(IRosterItem item) { if (item == null) return false; return rosteritems.remove(item); } /* * (non-Javadoc) * * @see org.eclipse.ecf.presence.roster.IRoster#setUser(org.eclipse.ecf.core.user.IUser) */ public void setUser(IUser user) { this.rosterUser = user; } /** * @return String this object as String */ public String toString() { StringBuffer buf = new StringBuffer("Roster["); //$NON-NLS-1$ buf.append("pc=").append(getPresenceContainerAdapter()); //$NON-NLS-1$ buf.append(";user=").append(getUser()); //$NON-NLS-1$ buf.append(";items=").append(getItems()).append("]"); //$NON-NLS-1$ //$NON-NLS-2$ return buf.toString(); } /* (non-Javadoc) * @see org.eclipse.ecf.presence.roster.IRoster#getPresenceContainerAdapter() */ public IPresenceContainerAdapter getPresenceContainerAdapter() { return presenceContainer; } }