use of com.bluenimble.platform.api.ApiRequest.Scope in project serverless by bluenimble.
the class DefaultApiServiceValidator method valueOf.
public Object valueOf(String name, JsonObject fieldSpec, ApiRequest request, ApiConsumer consumer, Map<String, Object> data) {
if (data != null) {
return data.get(name);
}
Object value = null;
String s = fieldSpec.getString(Spec.Scope);
if (Lang.isNullOrEmpty(s)) {
s = DefaultScope;
}
Object defaultValue = fieldSpec.get(Spec.Value);
Scope scope = null;
s = s.trim();
for (int i = 0; i < s.length(); i++) {
char sc = s.charAt(i);
if (ConsumerScope == sc) {
if (defaultValue != null) {
value = consumer.get(defaultValue.toString());
}
if (value != null) {
request.set(name, value);
}
continue;
}
scope = Scopes.get(String.valueOf(sc));
if (scope == null) {
continue;
}
value = request.get(name, scope);
if (value != null) {
break;
}
}
if (value == null) {
value = defaultValue;
if (value != null) {
request.set(name, value);
}
}
return value;
}
Aggregations