@Override
    void assembleMessageParameters() {
        final ByteBuffer paramsBuffer;
        MeshLogger.verbose(TAG, "Element address: " + MeshAddress.formatAddress(elementAddress, true));
        MeshLogger.verbose(TAG, "Model: " + CompositionDataParser.formatModelIdentifier(modelIdentifier, false));

        //We check if the model identifier value is within the range of a 16-bit value here. If it is then it is a sigmodel
        if (!MeshParserUtils.isVendorModel(modelIdentifier)) {
            paramsBuffer = ByteBuffer.allocate(SIG_MODEL_PUBLISH_GET_PARAMS_LENGTH).order(ByteOrder.LITTLE_ENDIAN);
            paramsBuffer.putShort((short) elementAddress);
            paramsBuffer.putShort((short) modelIdentifier);
        } else {
            paramsBuffer = ByteBuffer.allocate(VENDOR_MODEL_PUBLISH_GET_PARAMS_LENGTH).order(ByteOrder.LITTLE_ENDIAN);
            paramsBuffer.putShort((short) elementAddress);
            final byte[] modelIdentifier = new byte[]{(byte) ((this.modelIdentifier >> 24) & 0xFF), (byte) ((this.modelIdentifier >> 16) & 0xFF),
                    (byte) ((this.modelIdentifier >> 8) & 0xFF), (byte) (this.modelIdentifier & 0xFF)};
            paramsBuffer.put(modelIdentifier[1]);
            paramsBuffer.put(modelIdentifier[0]);
            paramsBuffer.put(modelIdentifier[3]);
            paramsBuffer.put(modelIdentifier[2]);
        }
        mParameters = paramsBuffer.array();
    }
Constructs a ConfigModelPublicationGet message

@param elementAddress                 Element address that should publish
@param modelIdentifier                identifier for this model that will do publication
@throws IllegalArgumentException for invalid arguments
mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigModelPublicationGet.java