FileDocCategorySizeDatePackage
ProtocolPushImpl.javaAPI DocphoneME MR2 API (J2ME)5461Wed May 02 18:00:30 BST 2007com.sun.midp.jsr82

ProtocolPushImpl

public class ProtocolPushImpl extends com.sun.midp.io.j2me.push.ProtocolPush
Implementation of push behaviour.

Fields Summary
private static ProtocolPushImpl
pushInstance
Instance
Constructors Summary
Methods Summary
public voidcheckRegistration(java.lang.String connection, java.lang.String midlet, java.lang.String filter)
Called when registration is checked.

param
connection generic connection protocol, host and port number (optional parameters may be included separated with semi-colons (;))
param
midlet class name of the MIDlet to be launched, when new external data is available
param
filter a connection URL string indicating which senders are allowed to cause the MIDlet to be launched
exception
IllegalArgumentException if the connection string is not valid
exception
ClassNotFoundException if the MIDlet class name can not be found in the current MIDlet suite

        BluetoothPush.verifyUrl(connection);
        BluetoothPush.verifyFilter(filter);
    
protected com.sun.midp.io.j2me.push.ProtocolPushgetInstance()
Get instance of this class.

return
class instance

        if (pushInstance == null) {
            pushInstance = new ProtocolPushImpl();
        }
        return (ProtocolPush)pushInstance;
    
public voidregisterConnection(com.sun.midp.midlet.MIDletSuite midletSuite, java.lang.String connection, java.lang.String midlet, java.lang.String filter)
Called when registration is established.

param
midletSuite MIDlet suite for the suite registering, the suite only has to implement isRegistered, checkForPermission, and getID.
param
connection generic connection protocol, host and port number (optional parameters may be included separated with semi-colons (;))
param
midlet class name of the MIDlet to be launched, when new external data is available
param
filter a connection URL string indicating which senders are allowed to cause the MIDlet to be launched
exception
IllegalArgumentException if the connection string is not valid
exception
IOException if the connection is already registered or if there are insufficient resources to handle the registration request
exception
ClassNotFoundException if the MIDlet class name can not be found in the current MIDlet suite

        
        int index = connection.indexOf(':");
        /* index > 0 because connection has been checked by ProtocolPush.getInstance() */
        String protocol = connection.substring(0, index).toLowerCase();
        int permission = -1;
        if (protocol.equals("btspp") || protocol.equals("btl2cap")) {
            permission = Permissions.BLUETOOTH_SERVER;
        } else if (protocol.equals("btgoep") || protocol.equals("irdaobex")) {
            permission = Permissions.OBEX_SERVER;
        } else if (protocol.equals("tcpobex")) {
            permission = Permissions.TCP_OBEX_SERVER;
        } else {
            throw new IllegalArgumentException("Wrong protocol name "+protocol);
        }
        
        try {
            midletSuite.checkForPermission(permission, connection);
        } catch (InterruptedException ie) {
            throw new InterruptedIOException(
                "Interrupted while trying to ask the user permission");
        }
        
        BluetoothPush.verifyUrl(connection);
        BluetoothPush.verifyFilter(filter);
        BluetoothPush.registerUrl(connection);