All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ie.omk.smpp.util.PacketFactory Maven / Gradle / Ivy

The newest version!
package ie.omk.smpp.util;

import ie.omk.smpp.BadCommandIDException;
import ie.omk.smpp.message.AlertNotification;
import ie.omk.smpp.message.BindReceiver;
import ie.omk.smpp.message.BindReceiverResp;
import ie.omk.smpp.message.BindTransceiver;
import ie.omk.smpp.message.BindTransceiverResp;
import ie.omk.smpp.message.BindTransmitter;
import ie.omk.smpp.message.BindTransmitterResp;
import ie.omk.smpp.message.CancelSM;
import ie.omk.smpp.message.CancelSMResp;
import ie.omk.smpp.message.DataSM;
import ie.omk.smpp.message.DataSMResp;
import ie.omk.smpp.message.DeliverSM;
import ie.omk.smpp.message.DeliverSMResp;
import ie.omk.smpp.message.EnquireLink;
import ie.omk.smpp.message.EnquireLinkResp;
import ie.omk.smpp.message.GenericNack;
import ie.omk.smpp.message.ParamRetrieve;
import ie.omk.smpp.message.ParamRetrieveResp;
import ie.omk.smpp.message.QueryLastMsgs;
import ie.omk.smpp.message.QueryLastMsgsResp;
import ie.omk.smpp.message.QueryMsgDetails;
import ie.omk.smpp.message.QueryMsgDetailsResp;
import ie.omk.smpp.message.QuerySM;
import ie.omk.smpp.message.QuerySMResp;
import ie.omk.smpp.message.ReplaceSM;
import ie.omk.smpp.message.ReplaceSMResp;
import ie.omk.smpp.message.SMPPPacket;
import ie.omk.smpp.message.SubmitMulti;
import ie.omk.smpp.message.SubmitMultiResp;
import ie.omk.smpp.message.SubmitSM;
import ie.omk.smpp.message.SubmitSMResp;
import ie.omk.smpp.message.Unbind;
import ie.omk.smpp.message.UnbindResp;

/**
 * Helper class to create new SMPP packet objects.
 * 
 * @since 1.0
 * @author Oran Kelly
 */
public final class PacketFactory {
    private PacketFactory() {
    }

    /**
     * Create a new instance of the appropriate sub class of SMPPPacket.
     * 
     * @deprecated
     */
    public static SMPPPacket newPacket(int id) throws BadCommandIDException {
        return newInstance(id);
    }

    /**
     * Create a new instance of the appropriate sub class of SMPPPacket. Packet
     * fields are all left at their default initial state.
     * 
     * @param id
     *            The SMPP command ID of the packet type to return.
     * @return A sub-class instance of {@link ie.omk.smpp.message.SMPPPacket}
     *         representing SMPP command id.
     * @throws ie.omk.smpp.BadCommandIDException
     *             if the command ID is not recognized.
     */
    public static SMPPPacket newInstance(int id) throws BadCommandIDException {
        SMPPPacket response = null;

        switch (id) {
        case SMPPPacket.GENERIC_NACK:
            response = new GenericNack();
            break;

        case SMPPPacket.BIND_RECEIVER:
            response = new BindReceiver();
            break;

        case SMPPPacket.BIND_RECEIVER_RESP:
            response = new BindReceiverResp();
            break;

        case SMPPPacket.BIND_TRANSMITTER:
            response = new BindTransmitter();
            break;

        case SMPPPacket.BIND_TRANSMITTER_RESP:
            response = new BindTransmitterResp();
            break;

        case SMPPPacket.BIND_TRANSCEIVER:
            response = new BindTransceiver();
            break;

        case SMPPPacket.BIND_TRANSCEIVER_RESP:
            response = new BindTransceiverResp();
            break;

        case SMPPPacket.UNBIND:
            response = new Unbind();
            break;

        case SMPPPacket.UNBIND_RESP:
            response = new UnbindResp();
            break;

        case SMPPPacket.SUBMIT_SM:
            response = new SubmitSM();
            break;

        case SMPPPacket.SUBMIT_SM_RESP:
            response = new SubmitSMResp();
            break;

        case SMPPPacket.DATA_SM:
            response = new DataSM();
            break;

        case SMPPPacket.DATA_SM_RESP:
            response = new DataSMResp();
            break;

        case SMPPPacket.ALERT_NOTIFICATION:
            response = new AlertNotification();
            break;

        case SMPPPacket.SUBMIT_MULTI:
            response = new SubmitMulti();
            break;

        case SMPPPacket.SUBMIT_MULTI_RESP:
            response = new SubmitMultiResp();
            break;

        case SMPPPacket.DELIVER_SM:
            response = new DeliverSM();
            break;

        case SMPPPacket.DELIVER_SM_RESP:
            response = new DeliverSMResp();
            break;

        case SMPPPacket.QUERY_SM:
            response = new QuerySM();
            break;

        case SMPPPacket.QUERY_SM_RESP:
            response = new QuerySMResp();
            break;

        case SMPPPacket.QUERY_LAST_MSGS:
            response = new QueryLastMsgs();
            break;

        case SMPPPacket.QUERY_LAST_MSGS_RESP:
            response = new QueryLastMsgsResp();
            break;

        case SMPPPacket.QUERY_MSG_DETAILS:
            response = new QueryMsgDetails();
            break;

        case SMPPPacket.QUERY_MSG_DETAILS_RESP:
            response = new QueryMsgDetailsResp();
            break;

        case SMPPPacket.CANCEL_SM:
            response = new CancelSM();
            break;

        case SMPPPacket.CANCEL_SM_RESP:
            response = new CancelSMResp();
            break;

        case SMPPPacket.REPLACE_SM:
            response = new ReplaceSM();
            break;

        case SMPPPacket.REPLACE_SM_RESP:
            response = new ReplaceSMResp();
            break;

        case SMPPPacket.ENQUIRE_LINK:
            response = new EnquireLink();
            break;

        case SMPPPacket.ENQUIRE_LINK_RESP:
            response = new EnquireLinkResp();
            break;

        case SMPPPacket.PARAM_RETRIEVE:
            response = new ParamRetrieve();
            break;

        case SMPPPacket.PARAM_RETRIEVE_RESP:
            response = new ParamRetrieveResp();
            break;

        default:
            throw new BadCommandIDException();
        }
        return response;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy