public void EvaluateConfig(IEngineEnvironmentSettings environmentSettings, IVariableCollection vars, IMacroConfig rawConfig, IParameterSet parameters, ParameterSetter setter) { ConstantMacroConfig config = rawConfig as ConstantMacroConfig; if (config == null) { throw new InvalidCastException("Couldn't cast the rawConfig as ConstantMacroConfig"); } Parameter p; if (parameters.TryGetParameterDefinition(config.VariableName, out ITemplateParameter existingParam)) { // If there is an existing parameter with this name, it must be reused so it can be referenced by name // for other processing, for example: if the parameter had value forms defined for creating variants. // When the param already exists, use its definition, but set IsVariable = true for consistency. p = (Parameter)existingParam; p.IsVariable = true; } else { p = new Parameter { IsVariable = true, Name = config.VariableName }; } vars[config.VariableName] = config.Value; setter(p, config.Value); }
public void EvaluateConfig(IEngineEnvironmentSettings environmentSettings, IVariableCollection vars, IMacroConfig rawConfig, IParameterSet parameters, ParameterSetter setter) { ConstantMacroConfig config = rawConfig as ConstantMacroConfig; if (config == null) { throw new InvalidCastException("Couldn't cast the rawConfig as ConstantMacroConfig"); } Parameter p = new Parameter { IsVariable = true, Name = config.VariableName }; setter(p, config.Value); }
public IMacroConfig CreateConfig(IEngineEnvironmentSettings environmentSettings, IMacroConfig rawConfig) { GeneratedSymbolDeferredMacroConfig deferredConfig = rawConfig as GeneratedSymbolDeferredMacroConfig; if (deferredConfig == null) { throw new InvalidCastException("Couldn't cast the rawConfig as a GeneratedSymbolDeferredMacroConfig"); } if (!deferredConfig.Parameters.TryGetValue("value", out JToken valueToken)) { throw new ArgumentNullException("value"); } string value = valueToken.ToString(); IMacroConfig realConfig = new ConstantMacroConfig(deferredConfig.DataType, deferredConfig.VariableName, value); return(realConfig); }
public void EvaluateDeferredConfig(IEngineEnvironmentSettings environmentSettings, IVariableCollection vars, IMacroConfig rawConfig, IParameterSet parameters, ParameterSetter setter) { GeneratedSymbolDeferredMacroConfig deferredConfig = rawConfig as GeneratedSymbolDeferredMacroConfig; if (deferredConfig == null) { throw new InvalidCastException("Couldn't cast the rawConfig as a GeneratedSymbolDeferredMacroConfig"); } if (!deferredConfig.Parameters.TryGetValue("value", out JToken valueToken)) { throw new ArgumentNullException("value"); } string value = valueToken.ToString(); IMacroConfig realConfig = new ConstantMacroConfig(deferredConfig.VariableName, value); EvaluateConfig(environmentSettings, vars, realConfig, parameters, setter); }
public void TestConstantConfig() { string variableName = "myConstant"; string value = "1048576"; ConstantMacroConfig macroConfig = new ConstantMacroConfig(null, variableName, value); IVariableCollection variables = new VariableCollection(); IRunnableProjectConfig config = A.Fake <IRunnableProjectConfig>(); IParameterSet parameters = new ParameterSet(config); ParameterSetter setter = MacroTestHelpers.TestParameterSetter(_engineEnvironmentSettings, parameters); ConstantMacro macro = new ConstantMacro(); macro.EvaluateConfig(_engineEnvironmentSettings, variables, macroConfig, parameters, setter); ITemplateParameter constParameter; Assert.True(parameters.TryGetParameterDefinition(variableName, out constParameter)); string constParamValue = (parameters.ResolvedValues[constParameter]).ToString(); Assert.Equal(constParamValue, value); }