Actually, I'm not even sure that `directPropertyNames` has to be a `Set`, it would work fine as a `Collection`.
There would be no need to create a `HashSet` and make it unmodifiable as `Arrays.asList()` is already unmodifiable.