private boolean validateProvisioningDataInput(final NetworkKey networkKey,
                                                  final Integer flags, final Integer ivIndex) {
        String error;

        if (networkKey == null) {
            error = "Network key cannot be null or empty!";
            throw new IllegalArgumentException(error);
        }

        if (networkKey.getKey() == null || networkKey.getKey().length != 16) {
            error = "Network key length must be 16 octets!";
            throw new IllegalArgumentException(error);
        }

        if (flags == null) {
            error = "Flags cannot be null!";
            throw new IllegalArgumentException(error);
        }

        if (ivIndex == null) {
            error = "IV Index cannot be null!";
            throw new IllegalArgumentException(error);
        }

        return true;
    }
Initializes a mesh node object to be provisioned

@param uuid       Device UUID of unprovisioned node
@param networkKey Network key
@param flags      Flag containing the key refresh or the iv update operations
@param ivIndex    32-bit value shared across the network
@param globalTtl  Global ttl which is also the number of hops to be used for a message
@return {@link MeshModel} to be provisioned
mesh/src/main/java/no/nordicsemi/android/mesh/MeshProvisioningHandler.java