public void Run(IEnvironment env) { IQueryValue value = null; if (!env.HasParameter(Name)) { if (Value == null) throw new KeyNotFoundException(string.Format("Parameter \"{0}\" was not defined", Name)); value = Value.Evaluate(env); } else { value = env.GetParameter(Name); } if(value.GetIQLType() != IQLType.Color) throw new InvalidOperationException(string.Format("Parameter \"{0}\" must be a color", Name)); env.CreateVariable(Name, value); }