package org.sef4j.core.helpers.senders.multiplexer; import java.io.Serializable; /** * immutable class for multiplexed event = Pair<key,wrappedEvent> * * @param <K> * @param <T> */ public class MultiplexedEvent<K,T> implements Serializable { private static final long serialVersionUID = 1L; private final K key; private final T wrappedEvent; public MultiplexedEvent(K key, T wrappedEvent) { this.key = key; this.wrappedEvent = wrappedEvent; } public K getKey() { return key; } public T getWrappedEvent() { return wrappedEvent; } @Override public String toString() { return "MultiplexedEvent[" + key + ", " + wrappedEvent + "]"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((key == null) ? 0 : key.hashCode()); result = prime * result + ((wrappedEvent == null) ? 0 : wrappedEvent.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; @SuppressWarnings("unchecked") MultiplexedEvent<K,T> other = (MultiplexedEvent<K,T>) obj; if (key == null) { if (other.key != null) return false; } else if (!key.equals(other.key)) return false; if (wrappedEvent == null) { if (other.wrappedEvent != null) return false; } else if (!wrappedEvent.equals(other.wrappedEvent)) return false; return true; } }