/** * */ package vnet.sms.gateway.nettysupport.window; import static org.apache.commons.lang.Validate.notNull; import java.io.Serializable; import vnet.sms.common.messages.GsmPdu; import vnet.sms.common.wme.acknowledge.SendMessageAcknowledgementEvent; import vnet.sms.gateway.nettysupport.AbstractMessageProcessingEvent; /** * @author obergner * */ public class FailedToReleaseAcknowledgedMessageEvent<ID extends Serializable, M extends GsmPdu> extends AbstractMessageProcessingEvent<M> { public static final <I extends Serializable, N extends GsmPdu> FailedToReleaseAcknowledgedMessageEvent<I, N> fail( final SendMessageAcknowledgementEvent<I, N> e, final Exception error) { notNull(e, "Argument 'e' must not be null"); notNull(error, "Argument 'error' must not be null"); return new FailedToReleaseAcknowledgedMessageEvent<I, N>(e, error); } private final Exception error; private FailedToReleaseAcknowledgedMessageEvent( final SendMessageAcknowledgementEvent<ID, M> e, final Exception error) { super(e.getChannel(), e.getMessage(), e.getRemoteAddress()); this.error = error; } /** * @return the error */ public final Exception getError() { return this.error; } @Override public String toString() { return "FailedToReleaseAcknowledgedMessageEvent@" + this.hashCode() + "[id: " + this.getId() + "|channel: " + this.getChannel() + "|creationTime: " + this.getCreationTime() + "|message: " + this.getMessage() + "|remoteAddress: " + this.getRemoteAddress() + "|error: " + this.error.getMessage() + "]"; } }