public Map<String, Object> listValues(CompoundName prefix, Map<String, String> context, Properties substitution) {
        Map<String, Object> values = visitValues(prefix, context).values();

        if (substitution == null) return values;
        for (Map.Entry<String, Object> entry : values.entrySet()) {
            if (entry.getValue().getClass() == String.class) continue; // Shortcut
            if (entry.getValue() instanceof SubstituteString) {
                entry.setValue(((SubstituteString) entry.getValue()).substitute(context, substitution));
            }
        }
        return values;
    }
Adds all objects that start with the given path prefix to the given value map. Use "" to list all.
<p>
For example, if {a.d =&gt; "a.d-value" ,a.e =&gt; "a.e-value", b.d =&gt; "b.d-value", then calling listValues("a")
will return {"d" =&gt; "a.d-value","e" =&gt; "a.e-value"}
container-search/src/main/java/com/yahoo/search/query/profile/QueryProfile.java