in openfeature-provider/src/main/java/com/spotify/confidence/OpenFeatureUtils.java [51:82]
static Value getValueForPath(List<String> path, Value fullValue) {
Value value = fullValue;
for (String fieldName : path) {
final Structure structure = value.asStructure();
if (structure == null) {
// value's inner object actually is no structure
log.warn(
"Illegal attempt to derive field '{}' on non-structure value '{}'", fieldName, value);
throw new TypeMismatchError(
String.format(
"Illegal attempt to derive field '%s' on non-structure value '%s'",
fieldName, value));
}
value = structure.getValue(fieldName);
if (value == null) {
// we know that null indicates absence of a proper value because intended nulls would be an
// instance of type Value
log.warn(
"Illegal attempt to derive non-existing field '{}' on structure value '{}'",
fieldName,
structure);
throw new TypeMismatchError(
String.format(
"Illegal attempt to derive non-existing field '%s' on structure value '%s'",
fieldName, structure));
}
}
return value;
}