19908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta/*
29908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * Copyright (C) 2013 The Android Open Source Project
39908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta *
49908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * Licensed under the Apache License, Version 2.0 (the "License");
59908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * you may not use this file except in compliance with the License.
69908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * You may obtain a copy of the License at
79908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta *
89908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta *      http://www.apache.org/licenses/LICENSE-2.0
99908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta *
109908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * Unless required by applicable law or agreed to in writing, software
119908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * distributed under the License is distributed on an "AS IS" BASIS,
129908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * See the License for the specific language governing permissions and
149908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * limitations under the License.
159908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta */
169908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
179908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Battapackage android.bluetooth;
189908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
199908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Battaimport java.util.UUID;
209908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
219908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta/**
22ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie * Represents a Bluetooth GATT Descriptor
2333ec9840c70ddc7cd008ecf2660c441defc5f302Matthew Xie *
2433ec9840c70ddc7cd008ecf2660c441defc5f302Matthew Xie * <p> GATT Descriptors contain additional information and attributes of a GATT
2533ec9840c70ddc7cd008ecf2660c441defc5f302Matthew Xie * characteristic, {@link BluetoothGattCharacteristic}. They can be used to describe
2633ec9840c70ddc7cd008ecf2660c441defc5f302Matthew Xie * the characteristic's features or to control certain behaviours of the characteristic.
279908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta */
289908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Battapublic class BluetoothGattDescriptor {
299908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
309908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
319908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Value used to enable notification for a client configuration descriptor
329908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
339908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public static final byte[] ENABLE_NOTIFICATION_VALUE = {0x01, 0x00};
349908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
359908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
369908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Value used to enable indication for a client configuration descriptor
379908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
389908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public static final byte[] ENABLE_INDICATION_VALUE = {0x02, 0x00};
399908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
409908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
419908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Value used to disable notifications or indicatinos
429908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
439908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public static final byte[] DISABLE_NOTIFICATION_VALUE = {0x00, 0x00};
449908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
459908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
469908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Descriptor read permission
479908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
489908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public static final int PERMISSION_READ = 0x01;
499908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
509908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
519908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Descriptor permission: Allow encrypted read operations
529908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
539908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public static final int PERMISSION_READ_ENCRYPTED = 0x02;
549908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
559908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
569908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Descriptor permission: Allow reading with man-in-the-middle protection
579908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
589908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public static final int PERMISSION_READ_ENCRYPTED_MITM = 0x04;
599908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
609908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
619908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Descriptor write permission
629908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
639908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public static final int PERMISSION_WRITE = 0x10;
649908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
659908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
669908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Descriptor permission: Allow encrypted writes
679908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
689908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public static final int PERMISSION_WRITE_ENCRYPTED = 0x20;
699908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
709908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
719908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Descriptor permission: Allow encrypted writes with man-in-the-middle
729908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * protection
739908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
749908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public static final int PERMISSION_WRITE_ENCRYPTED_MITM = 0x40;
759908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
769908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
779908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Descriptor permission: Allow signed write operations
789908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
799908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public static final int PERMISSION_WRITE_SIGNED = 0x80;
809908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
819908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
829908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Descriptor permission: Allow signed write operations with
839908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * man-in-the-middle protection
849908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
859908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public static final int PERMISSION_WRITE_SIGNED_MITM = 0x100;
869908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
879908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
889908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * The UUID of this descriptor.
899908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @hide
909908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
919908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    protected UUID mUuid;
929908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
939908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
949908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Permissions for this descriptor
959908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @hide
969908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
979908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    protected int mPermissions;
989908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
999908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
1009908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Back-reference to the characteristic this descriptor belongs to.
1019908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @hide
1029908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
1039908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    protected BluetoothGattCharacteristic mCharacteristic;
1049908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
1059908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
1069908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * The value for this descriptor.
1079908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @hide
1089908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
1099908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    protected byte[] mValue;
1109908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
1119908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
1129908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Create a new BluetoothGattDescriptor.
1139908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission.
1149908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
115ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie     * @param uuid The UUID for this descriptor
116ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie     * @param permissions Permissions for this descriptor
117ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie     */
118ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie    public BluetoothGattDescriptor(UUID uuid, int permissions) {
119ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie        initDescriptor(null, uuid, permissions);
120ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie    }
121ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie
122ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie    /**
123ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie     * Create a new BluetoothGattDescriptor.
124ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie     * <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission.
125ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie     *
1269908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param characteristic The characteristic this descriptor belongs to
1279908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param uuid The UUID for this descriptor
1289908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param permissions Permissions for this descriptor
1299908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
1309908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /*package*/ BluetoothGattDescriptor(BluetoothGattCharacteristic characteristic, UUID uuid,
1319908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                                    int permissions) {
132ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie        initDescriptor(characteristic, uuid, permissions);
133ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie    }
134ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie
135ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie    private void initDescriptor(BluetoothGattCharacteristic characteristic, UUID uuid,
136ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie                                int permissions) {
1379908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta        mCharacteristic = characteristic;
1389908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta        mUuid = uuid;
1399908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta        mPermissions = permissions;
1409908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
1419908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
1429908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
1439908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Returns the characteristic this descriptor belongs to.
1449908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @return The characteristic.
1459908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
1469908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public BluetoothGattCharacteristic getCharacteristic() {
1479908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta        return mCharacteristic;
1489908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
1499908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
1509908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
151ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie     * Set the back-reference to the associated characteristic
152ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie     * @hide
153ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie     */
154ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie    /*package*/ void setCharacteristic(BluetoothGattCharacteristic characteristic) {
155ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie        mCharacteristic = characteristic;
156ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie    }
157ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie
158ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie    /**
1599908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Returns the UUID of this descriptor.
1609908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
1619908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @return UUID of this descriptor
1629908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
1639908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public UUID getUuid() {
1649908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta        return mUuid;
1659908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
1669908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
1679908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
1689908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Returns the permissions for this descriptor.
1699908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
1709908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @return Permissions of this descriptor
1719908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
1729908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public int getPermissions() {
1739908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta        return mPermissions;
1749908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
1759908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
1769908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
1779908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Returns the stored value for this descriptor
1789908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
1799908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * <p>This function returns the stored value for this descriptor as
180ddf7e4756c31d0ed90802f98abeaa79df6d16b2aMatthew Xie     * retrieved by calling {@link BluetoothGatt#readDescriptor}. The cached
1819908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * value of the descriptor is updated as a result of a descriptor read
1829908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * operation.
1839908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
1849908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @return Cached value of the descriptor
1859908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
1869908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public byte[] getValue() {
1879908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta        return mValue;
1889908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
1899908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
1909908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    /**
1919908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * Updates the locally stored value of this descriptor.
1929908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
1939908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * <p>This function modifies the locally stored cached value of this
1949908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * descriptor. To send the value to the remote device, call
1959908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * {@link BluetoothGatt#writeDescriptor} to send the value to the
1969908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * remote device.
1979908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *
1989908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @param value New value for this descriptor
1999908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     * @return true if the locally stored value has been set, false if the
2009908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     *              requested value could not be stored locally.
2019908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta     */
2029908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    public boolean setValue(byte[] value) {
2039908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta        mValue = value;
2049908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta        return true;
2059908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    }
2069908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta}
207