private void parseCompositionDataPages() {
        final AccessMessage message = (AccessMessage) mMessage;
        final byte[] accessPayload = message.getAccessPdu();

        //Bluetooth SIG 16-bit company identifier
        companyIdentifier = MeshParserUtils.unsignedBytesToInt(accessPayload[2], accessPayload[3]);
        MeshLogger.verbose(TAG, "Company identifier: " + String.format(Locale.US, "%04X", companyIdentifier));

        //16-bit vendor-assigned product identifier;
        productIdentifier = MeshParserUtils.unsignedBytesToInt(accessPayload[4], accessPayload[5]);
        MeshLogger.verbose(TAG, "Product identifier: " + String.format(Locale.US, "%04X", productIdentifier));

        //16-bit vendor-assigned product version identifier;
        versionIdentifier = MeshParserUtils.unsignedBytesToInt(accessPayload[6], accessPayload[7]);
        MeshLogger.verbose(TAG, "Version identifier: " + String.format(Locale.US, "%04X", versionIdentifier));

        //16-bit representation of the minimum number of replay protection list entries in a device
        crpl = MeshParserUtils.unsignedBytesToInt(accessPayload[8], accessPayload[9]);
        MeshLogger.verbose(TAG, "crpl: " + String.format(Locale.US, "%04X", crpl));

        //16-bit device features
        features = MeshParserUtils.unsignedBytesToInt(accessPayload[10], accessPayload[11]);
        MeshLogger.verbose(TAG, "Features: " + String.format(Locale.US, "%04X", features));

        relayFeatureSupported = DeviceFeatureUtils.supportsRelayFeature(features);
        MeshLogger.verbose(TAG, "Relay feature: " + relayFeatureSupported);

        proxyFeatureSupported = DeviceFeatureUtils.supportsProxyFeature(features);
        MeshLogger.verbose(TAG, "Proxy feature: " + proxyFeatureSupported);

        friendFeatureSupported = DeviceFeatureUtils.supportsFriendFeature(features);
        MeshLogger.verbose(TAG, "Friend feature: " + friendFeatureSupported);

        lowPowerFeatureSupported = DeviceFeatureUtils.supportsLowPowerFeature(features);
        MeshLogger.verbose(TAG, "Low power feature: " + lowPowerFeatureSupported);

        // Parsing the elements which is a variable number of octets
        // Elements contain following
        // location descriptor,
        // Number of SIG model IDs in this element
        // Number of vendor model in this element
        // SIG model ID octents - Variable
        // Vendor model ID octents - Variable
        parseElements(accessPayload, message.getSrc());
        MeshLogger.verbose(TAG, "Number of elements: " + mElements.size());
    }
Parses composition data status received from the mesh node
mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigCompositionDataStatus.java