/*
* @@COPYRIGHT@@
*/
package com.cosylab.acs.maci;
/**
* Handle helper class providing various utilities.
*
* @author Matej Sekoranja (matej.sekoranja@cosylab.com)
* @version @@VERSION@@
*/
public class HandleHelper implements HandleConstants
{
/**
* Returns a single-line human readable rendition of the handle.
*
* @param handle handle to be rendered
* @return single-line human readable rendition of the handle
*/
public static String toString(int handle)
{
StringBuffer sbuff = new StringBuffer();
sbuff.append("Handle (0x");
sbuff.append(Integer.toHexString(handle));
sbuff.append(") = { ");
sbuff.append("type = ");
switch (handle & TYPE_MASK)
{
case CONTAINER_MASK:
sbuff.append("CONTAINER");
break;
case CLIENT_MASK:
sbuff.append("CLIENT");
break;
case ADMINISTRATOR_MASK:
sbuff.append("ADMINISTRATOR");
break;
case COMPONENT_MASK:
sbuff.append("COMPONENT");
break;
default:
sbuff.append("unknown (0x");
sbuff.append(Integer.toHexString(handle & TYPE_MASK));
sbuff.append(")");
}
sbuff.append(", key = (0x");
sbuff.append(Integer.toHexString((handle & KEY_MASK) >> 16));
sbuff.append("), id = (0x");
sbuff.append(Integer.toHexString(handle & HANDLE_MASK));
sbuff.append(") }");
return new String(sbuff);
}
}