/**
*
*/
package vnet.sms.gateway.nettysupport.login.incoming;
import static org.apache.commons.lang.Validate.isTrue;
import java.io.Serializable;
import org.jboss.netty.channel.Channel;
import vnet.sms.common.messages.Acknowledgement;
import vnet.sms.common.messages.GsmPdu;
import vnet.sms.common.messages.LoginRequest;
import vnet.sms.common.wme.MessageEventType;
import vnet.sms.common.wme.WindowedMessageEvent;
import vnet.sms.common.wme.acknowledge.DownstreamSendMessageAcknowledgementEvent;
/**
* @author obergner
*
*/
public final class NonLoginMessageReceivedOnUnauthenticatedChannelEvent<ID extends Serializable, M extends GsmPdu>
extends DownstreamSendMessageAcknowledgementEvent<ID, M> {
public static final <ID extends Serializable, M extends GsmPdu> NonLoginMessageReceivedOnUnauthenticatedChannelEvent<ID, M> discardNonLoginMessage(
final WindowedMessageEvent<ID, M> nonLoginRequest) {
isTrue(!(nonLoginRequest.getMessage() instanceof LoginRequest),
"Argument 'nonLoginRequest' must not be a LoginRequest");
return new NonLoginMessageReceivedOnUnauthenticatedChannelEvent<ID, M>(
nonLoginRequest.getMessageReference(),
nonLoginRequest.getChannel(), nonLoginRequest.getMessage());
}
private NonLoginMessageReceivedOnUnauthenticatedChannelEvent(
final ID messageReference, final Channel channel, final M message) {
super(
messageReference,
MessageEventType.NON_LOGIN_MESSAGE_RECEIVED_ON_UNAUTHENTICATED_CHANNEL,
channel, message, Acknowledgement.nack());
}
}