/** * */ package vnet.sms.gateway.transports.serialization.incoming; import vnet.sms.common.messages.GsmPdu; import vnet.sms.common.messages.LoginRequest; import vnet.sms.common.messages.LoginResponse; import vnet.sms.common.messages.PingRequest; import vnet.sms.common.messages.PingResponse; import vnet.sms.common.messages.Sms; import vnet.sms.gateway.nettysupport.transport.incoming.TransportProtocolAdaptingUpstreamChannelHandler; import vnet.sms.gateway.transports.serialization.ReferenceableMessageContainer; /** * @author obergner * */ public class SerializationTransportProtocolAdaptingUpstreamChannelHandler extends TransportProtocolAdaptingUpstreamChannelHandler<Integer, ReferenceableMessageContainer> { /** * @see vnet.sms.gateway.nettysupport.transport.incoming.TransportProtocolAdaptingUpstreamChannelHandler#typeOf(java.lang.Object) */ @Override protected PduType typeOf(final Object pdu) { if (!(pdu instanceof ReferenceableMessageContainer)) { return TransportProtocolAdaptingUpstreamChannelHandler.PduType.UNKNOWN; } final GsmPdu payload = ((ReferenceableMessageContainer) pdu) .getMessage(); final TransportProtocolAdaptingUpstreamChannelHandler.PduType pduType; if (payload instanceof LoginRequest) { pduType = TransportProtocolAdaptingUpstreamChannelHandler.PduType.LOGIN_REQUEST; } else if (payload instanceof LoginResponse) { pduType = TransportProtocolAdaptingUpstreamChannelHandler.PduType.LOGIN_RESPONSE; } else if (payload instanceof PingRequest) { pduType = TransportProtocolAdaptingUpstreamChannelHandler.PduType.PING_REQUEST; } else if (payload instanceof PingResponse) { pduType = TransportProtocolAdaptingUpstreamChannelHandler.PduType.PING_RESPONSE; } else if (payload instanceof Sms) { pduType = TransportProtocolAdaptingUpstreamChannelHandler.PduType.SMS; } else { pduType = TransportProtocolAdaptingUpstreamChannelHandler.PduType.UNKNOWN; } return pduType; } /** * @see vnet.sms.gateway.nettysupport.transport.incoming.TransportProtocolAdaptingUpstreamChannelHandler#extractWindowId(java.lang.Object) */ @Override protected Integer extractWindowId(final ReferenceableMessageContainer pdu) { return pdu.getMessageReference(); } /** * @see vnet.sms.gateway.nettysupport.transport.incoming.TransportProtocolAdaptingUpstreamChannelHandler#convertPduToLoginRequest(java.lang.Object) */ @Override protected LoginRequest convertPduToLoginRequest( final ReferenceableMessageContainer loginRequestPdu) { return (LoginRequest) loginRequestPdu.getMessage(); } /** * @see vnet.sms.gateway.nettysupport.transport.incoming.TransportProtocolAdaptingUpstreamChannelHandler#convertPduToLoginResponse(java.lang.Object) */ @Override protected LoginResponse convertPduToLoginResponse( final ReferenceableMessageContainer loginResponsePdu) { return (LoginResponse) loginResponsePdu.getMessage(); } /** * @see vnet.sms.gateway.nettysupport.transport.incoming.TransportProtocolAdaptingUpstreamChannelHandler#convertPduToPingRequest(java.lang.Object) */ @Override protected PingRequest convertPduToPingRequest( final ReferenceableMessageContainer pingRequestPdu) { return (PingRequest) pingRequestPdu.getMessage(); } /** * @see vnet.sms.gateway.nettysupport.transport.incoming.TransportProtocolAdaptingUpstreamChannelHandler#convertPduToPingResponse(java.lang.Object) */ @Override protected PingResponse convertPduToPingResponse( final ReferenceableMessageContainer pingResponsePdu) { return (PingResponse) pingResponsePdu.getMessage(); } /** * @see vnet.sms.gateway.nettysupport.transport.incoming.TransportProtocolAdaptingUpstreamChannelHandler#convertPduToSms(java.lang.Object) */ @Override protected Sms convertPduToSms(final ReferenceableMessageContainer smsPdu) { return (Sms) smsPdu.getMessage(); } }