docs: protected boolean isKeyOperationAllowed(boolean isWrite, long flagBitSet,
                                             LocalizedCacheTopology cacheTopology, Object key) {
        if (availabilityMode == AvailabilityMode.AVAILABLE)
           return true;
  
        assert partitionHandling != PartitionHandling.ALLOW_READ_WRITES :
           "ALLOW_READ_WRITES caches should always be AVAILABLE";
  
        List<Address> actualMembers = cacheTopology.getActualMembers();
        switch (partitionHandling) {
           case ALLOW_READS:
              List<Address> owners = getOwners(cacheTopology, key, isWrite);
              if (isWrite || EnumUtil.containsAny(flagBitSet, FlagBitSets.FORCE_WRITE_LOCK)) {
                 // Writes require all the owners to be in the local partition
                 return actualMembers.containsAll(owners);
              } else {
                 // Reads only require one owner in the local partition
                 return InfinispanCollections.containsAny(actualMembers, owners);
              }
           case DENY_READ_WRITES:
              // Both reads and writes require all the owners to be in the local partition
              return actualMembers.containsAll(getOwners(cacheTopology, key, isWrite));
           default:
              throw new IllegalStateException("Unsupported partition handling type: " + partitionHandling);
        }
     }