| PayloadKey.java |
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.invocation;
import java.io.Serializable;
import java.io.ObjectStreamException;
/** Type safe enumeration used for to identify the payloads.
*
* @author Scott.Stark@jboss.org
* @version $Revision: 1.2 $
*/
public final class PayloadKey implements Serializable
{
/** Serial Version Identifier. @since 1.1.4.1 */
private static final long serialVersionUID = 5436722659170811314L;
/** The max ordinal value in use for the PayloadKey enums. When you add a
* new key enum value you must assign it an ordinal value of the current
* MAX_KEY_ID+1 and update the MAX_KEY_ID value.
*/
private static final int MAX_KEY_ID = 3;
/** The array of InvocationKey indexed by ordinal value of the key */
private static final PayloadKey[] values = new PayloadKey[MAX_KEY_ID+1];
/** Put me in the transient map, not part of payload. */
public final static PayloadKey TRANSIENT = new PayloadKey("TRANSIENT", 0);
/** Do not serialize me, part of payload as is. */
public final static PayloadKey AS_IS = new PayloadKey("AS_IS", 1);
/** Put me in the payload map. */
public final static PayloadKey PAYLOAD = new PayloadKey("PAYLOAD", 2);
private final transient String name;
// this is the only value serialized
private final int ordinal;
private PayloadKey(String name, int ordinal)
{
this.name = name;
this.ordinal = ordinal;
values[ordinal] = this;
}
public String toString()
{
return name;
}
Object readResolve() throws ObjectStreamException
{
return values[ordinal];
}
}
| PayloadKey.java |