blob: 040cd474407139035349eed23c9f70e7bb4954b2 [file] [log] [blame]
/****************************************************************************
* Copyright (c) 2006, 2007 Remy Suen, 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:
* Remy Suen <remy.suen@gmail.com> - initial API and implementation
*****************************************************************************/
package org.eclipse.ecf.internal.provider.msn;
import org.eclipse.ecf.core.identity.ID;
import org.eclipse.ecf.core.identity.Namespace;
import org.eclipse.ecf.presence.im.IChatID;
class MSNID implements IChatID, ID {
private static final long serialVersionUID = 902162253789728990L;
private final Namespace namespace;
private final String email;
private final String userName;
private final String hostName;
MSNID(Namespace namespace, String email) {
this.namespace = namespace;
this.email = email;
int index = email.indexOf('@');
userName = email.substring(0, index);
hostName = email.substring(index+1);
}
public String getName() {
return email;
}
public Namespace getNamespace() {
return namespace;
}
public String toExternalForm() {
return email;
}
public int compareTo(Object another) {
if (another instanceof MSNID) {
return email.compareTo(((MSNID) another).email);
} else {
throw new ClassCastException();
}
}
public Object getAdapter(Class adapter) {
if (adapter.equals(IChatID.class)) {
return this;
} else {
return null;
}
}
public String getUsername() {
return userName;
}
public String getHostname() {
return hostName;
}
public int hashCode() {
return email.hashCode() ^ -31;
}
public boolean equals(Object obj) {
if (obj instanceof MSNID) {
return email.equals(((MSNID) obj).email);
} else {
return false;
}
}
public String toString() {
return email;
}
}