blob: 808a3692af7467268d72fdee6d207675242222be [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2007 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.internal.provider.irc.identity;
import java.net.URI;
import org.eclipse.ecf.core.identity.BaseID;
import org.eclipse.ecf.core.identity.Namespace;
import org.eclipse.ecf.presence.im.IChatID;
public class IRCID extends BaseID implements IChatID {
private static final long serialVersionUID = -6582811574473106742L;
public static final int DEFAULT_IRC_PORT = 6667;
URI uri;
protected IRCID(Namespace namespace, URI uri) {
super(namespace);
this.uri = uri;
}
/* (non-Javadoc)
* @see org.eclipse.ecf.core.identity.BaseID#namespaceCompareTo(org.eclipse.ecf.core.identity.BaseID)
*/
protected int namespaceCompareTo(BaseID o) {
return getName().compareTo(o.getName());
}
/* (non-Javadoc)
* @see org.eclipse.ecf.core.identity.BaseID#namespaceEquals(org.eclipse.ecf.core.identity.BaseID)
*/
protected boolean namespaceEquals(BaseID o) {
if (!(o instanceof IRCID)) {
return false;
}
IRCID other = (IRCID) o;
return uri.equals(other.uri);
}
/* (non-Javadoc)
* @see org.eclipse.ecf.core.identity.BaseID#namespaceGetName()
*/
protected String namespaceGetName() {
return uri.toString();
}
/* (non-Javadoc)
* @see org.eclipse.ecf.core.identity.BaseID#namespaceHashCode()
*/
protected int namespaceHashCode() {
return uri.hashCode();
}
public String getUser() {
return uri.getUserInfo();
}
public String getHost() {
return uri.getHost();
}
public String getHostname() {
return getHost();
}
public int getPort() {
int p = uri.getPort();
if (p == -1)
return DEFAULT_IRC_PORT;
return p;
}
public String getChannel() {
String frag = uri.getFragment();
if (frag != null && !frag.equals(""))return "#" + frag; //$NON-NLS-1$ //$NON-NLS-2$
return null;
}
public String toString() {
StringBuffer sb = new StringBuffer("IRCID["); //$NON-NLS-1$
sb.append(uri.toString()).append(']');
return sb.toString();
}
public String getUsername() {
return getUser();
}
/* (non-Javadoc)
* @see org.eclipse.ecf.core.identity.BaseID#getAdapter(java.lang.Class)
*/
public Object getAdapter(Class clazz) {
if (clazz.isInstance(this)) {
return this;
}
return super.getAdapter(clazz);
}
}