private static BsonValue resolveOrNull(BsonValue value, List<String> paths) {
      if (paths.isEmpty()) {
        return value;
      }

      if (!value.isDocument()) {
        return BsonNull.VALUE;
      }

      BsonDocument document = value.asDocument();
      final String first = paths.get(0);
      if (!document.containsKey(first)) {
        return BsonNull.VALUE;
      }

      return resolveOrNull(document.get(first), paths.subList(1, paths.size()));
    }
Provider for {@link ProjectedTuple}. Used when there are projections.
criteria/mongo/src/org/immutables/criteria/mongo/TupleCodecProvider.java