/******************************************************************************* * Copyright © 2012-2015 eBay Software Foundation * This program is dual licensed under the MIT and Apache 2.0 licenses. * Please see LICENSE for more information. *******************************************************************************/ package com.ebay.jetstream.event; import java.io.Serializable; import com.ebay.jetstream.xmlser.XSerializable; /** * EventId is an immutable identifier for an event. The property of the EventId * is that no two events will share this identifier. It will be used throughout the event * system to manage the processing state of an event. * * Implementations of EventId must implement the standard equals and hashCode methods * correctly so that the object may be used in java.util.Map objects. * * @see java.util.Map * * @author Dan Pritchett * */ public interface EventId extends XSerializable, Serializable { /** * The getOpaqueHandle method must return a string version of the identifier. Implementations * may chose to serialize the handle to string in any fashion. The serialization must be stable * and must not change the immutable and uniqueness properties of the identifer. * * @return the serialized form. */ public String getOpaqueHandle(); }