VariableScope.fromSchemas constructor

VariableScope.fromSchemas(
  1. List<VariableSchema> schemas,
  2. Map<String, dynamic>? cepVars
)

Builds a scope by resolving each declared schemas entry against the runtime CEP cepVars payload. The winning value follows the chain CEP payload → fallbackValue""; number-typed variables are coerced numerically so they can take part in {{ a + b }} arithmetic.

Implementation

factory VariableScope.fromSchemas(
  List<VariableSchema> schemas,
  Map<String, dynamic>? cepVars,
) {
  final values = <String, dynamic>{};
  final types = <String, String>{};
  for (final schema in schemas) {
    types[schema.name] = schema.type;
    values[schema.name] = schema.type == 'number'
        ? _resolveNumber(cepVars?[schema.name], schema.fallbackValue)
        : _resolveString(cepVars?[schema.name], schema.fallbackValue);
  }
  return VariableScope(values, types);
}