| ConnectionToken.java |
/*
* JBossMQ, the OpenSource JMS implementation
*
* Distributable under LGPL license. See terms of license at gnu.org.
*/
package org.jboss.mq;
import java.io.Serializable;
import org.jboss.mq.il.ClientIL;
/**
* This class is the broker point of view on a SpyConnection (it contains a
* ConnectionReceiver).
*
* Remember that for most IL's it will be serialized!
*
* @author <a href="Norbert.Lataille@m4x.org">Norbert Lataille</a>
* @author <a href="Cojonudo14@hotmail.com">Hiram Chirino</a>
* @author <a href="pra@tim.se">Peter Antman</a>
* @author <a href="mailto:adrian@jboss.org">Adrian Brock</a>
* @version $Revision: 1.8 $
*/
public class ConnectionToken implements Serializable
{
// Constants -----------------------------------------------------
/** The serialVersionUID */
private static final long serialVersionUID = 1344893519455875890L;
// Attributes ----------------------------------------------------
/**
* Used by the server to callback to client. Will (most of the time) be
* serialized when sent to the server.
*/
public ClientIL clientIL;
/**
* The clientID of the connection.
*/
protected String clientID;
/**
* A secured hashed unique sessionId that is valid only as long as the
* connection live. Set during authentication and used for authorization.
*/
private String sessionId;
/** The hash code */
private int hash;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
/**
* Create a new ConnectionToken
*
* @param clientID the client id
* @param clientIL the client il
*/
public ConnectionToken(String clientID, ClientIL clientIL)
{
this.clientIL = clientIL;
setClientID(clientID);
}
/**
* Create a new ConnectionToken
*
* @param clientID the client id
* @param clientIL the client il
* @param sessionId the session id
*/
public ConnectionToken(String clientID, ClientIL clientIL, String sessionId)
{
this(clientID, clientIL);
this.sessionId = sessionId;
}
// Public --------------------------------------------------------
/**
* Get the client id
*
* @return the client id
*/
public String getClientID()
{
return clientID;
}
/**
* Set the client id
*
* @param clientID the client id
*/
public void setClientID(String clientID)
{
this.clientID = clientID;
if (clientID == null)
hash = 0;
else
hash = clientID.hashCode();
}
/**
* Get the session id
*
* @return the session id
*/
public String getSessionId()
{
return sessionId;
}
// Object overrides ----------------------------------------------
public boolean equals(Object obj)
{
if (!(obj instanceof ConnectionToken) || obj == null)
return false;
if (obj.hashCode() != hash)
return false;
String yourID = ((ConnectionToken) obj).clientID;
String yourSessionId = ((ConnectionToken) obj).sessionId;
if (clientID == null && yourID != null)
return false;
else if (sessionId == null && yourSessionId != null)
return false;
else if (clientID != null && clientID.equals(yourID) == false)
return false;
else if (sessionId != null && sessionId.equals(yourSessionId) == false)
return false;
else
return true;
}
public int hashCode()
{
return hash;
}
public String toString()
{
return "ConnectionToken:" + clientID + "/" + sessionId;
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}| ConnectionToken.java |