javaextensions/bluetooth/omjbluetooth/javasrc/com/nokia/mj/impl/properties/bluetooth/BtDynamicPropertyHandler.java
changeset 21 2a9601315dfc
child 57 59b3b4473dc8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javaextensions/bluetooth/omjbluetooth/javasrc/com/nokia/mj/impl/properties/bluetooth/BtDynamicPropertyHandler.java	Mon May 03 12:27:20 2010 +0300
@@ -0,0 +1,130 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+package com.nokia.mj.impl.properties.bluetooth;
+
+import java.util.Hashtable;
+import java.io.IOException;
+import javax.bluetooth.BluetoothStateException;
+
+import com.nokia.mj.impl.rt.support.Jvm;
+import com.nokia.mj.impl.rt.support.SystemPropertyProvider;
+
+/**
+ * Class defines the System Properties that need to be exposed by JSR-82.
+ */
+public final class BtDynamicPropertyHandler implements SystemPropertyProvider
+{
+    // Value as a string in Base10 Digits
+    private static String BT_L2CAP_RECEIVEMTU_MAX = "bluetooth.l2cap.receiveMTU.max";
+
+    private static String BT_CONNECTED_DEVICES_MAX = "bluetooth.connected.devices.max";
+
+    // Following return True/False
+    private static String BT_CONNECTED_INQUIRY = "bluetooth.connected.inquiry";
+
+    private static String BT_CONNECTED_PAGE = "bluetooth.connected.page";
+
+    private static String BT_CONNECTED_INQUIRY_SCAN = "bluetooth.connected.inquiry.scan";
+
+    private static String BT_CONNECTED_PAGE_SCAN = "bluetooth.connected.page.scan";
+
+    private static String BT_MASTER_SWITCH = "bluetooth.master.switch";
+
+    // Value as a string in Base10 Digits
+    private static String BT_SD_TRANS_MAX = "bluetooth.sd.trans.max";
+
+    private static String BT_SD_ATTR_RETRIEVE_MAX = "bluetooth.sd.attr.retrievable.max";
+
+    // Constants corresponding to the Property values
+    private static final int L2CAP_RECEIVEMTU_MAX = 1;
+
+    private static final int CONNECTED_DEVICES_MAX = 2;
+
+    private static final int CONNECTED_INQUIRY = 3;
+
+    private static final int CONNECTED_PAGE = 4;
+
+    private static final int CONNECTED_INQUIRY_SCAN = 5;
+
+    private static final int CONNECTED_PAGE_SCAN = 6;
+
+    private static final int MASTER_SWITCH = 7;
+
+    private static final int SD_TRANS_MAX = 8;
+
+    private static final int SD_ATTR_RETRIEVE_MAX = 9;
+
+    private static Hashtable iPropertyKeys;
+
+    // Initialize the hashtables when the class is first loaded.
+    static
+    {
+        iPropertyKeys = new Hashtable();
+        iPropertyKeys.put(BT_L2CAP_RECEIVEMTU_MAX, new Integer(
+                              L2CAP_RECEIVEMTU_MAX));
+        iPropertyKeys.put(BT_CONNECTED_DEVICES_MAX, new Integer(
+                              CONNECTED_DEVICES_MAX));
+        iPropertyKeys.put(BT_CONNECTED_INQUIRY, new Integer(CONNECTED_INQUIRY));
+        iPropertyKeys.put(BT_CONNECTED_PAGE, new Integer(CONNECTED_PAGE));
+        iPropertyKeys.put(BT_CONNECTED_INQUIRY_SCAN, new Integer(
+                              CONNECTED_INQUIRY_SCAN));
+        iPropertyKeys.put(BT_CONNECTED_PAGE_SCAN, new Integer(
+                              CONNECTED_PAGE_SCAN));
+        iPropertyKeys.put(BT_MASTER_SWITCH, new Integer(MASTER_SWITCH));
+        iPropertyKeys.put(BT_SD_TRANS_MAX, new Integer(SD_TRANS_MAX));
+        iPropertyKeys.put(BT_SD_ATTR_RETRIEVE_MAX, new Integer(
+                              SD_ATTR_RETRIEVE_MAX));
+    }
+
+    /**
+     * Retrieves Bluetooth system properties.
+     *
+     * @param aKey
+     *            The property to retrieve as defined in this class.
+     * @return The value of the property specified; null if the property is not
+     *         defined
+     */
+    public String getProperty(String aKey)
+    {
+        String propertyValue = null;
+        String propertyName = aKey;
+
+        Object property = iPropertyKeys.get(propertyName);
+        if (null == property)
+        {
+            return null;
+        }
+
+        int propertyType = ((Integer) property).intValue();
+
+        propertyValue = com.nokia.mj.impl.bluetooth.BTPlatformControl
+                        ._getProperty(propertyType);
+
+        return propertyValue;
+    }
+
+    public boolean isStatic(String aKey)
+    {
+        // If there is any property that can change during application's
+        // runtime,
+        // then we return false in that case.
+        return true;
+    }
+
+    // Native methods for BTDynamicPropertyHandler
+}
\ No newline at end of file