/// <summary>
        /// Handles the context rule.
        /// </summary>
        /// <param name="file">The file.</param>
        /// <param name="contextRule">The context rule.</param>
        private void HandleContextRule(ConfigFile file, CppElementFinder finder, ContextRule contextRule)
        {
            if (contextRule is ClearContextRule)
            {
                finder.ClearCurrentContexts();
            }
            else
            {
                var contextIds = new List <string>();

                if (!string.IsNullOrEmpty(contextRule.ContextSetId))
                {
                    var contextSet = file.FindContextSetById(contextRule.ContextSetId);
                    if (contextSet != null)
                    {
                        contextIds.AddRange(contextSet.Contexts);
                    }
                }
                contextIds.AddRange(contextRule.Ids);

                finder.AddContexts(contextIds);
            }
        }
Пример #2
0
 internal FeaturedRule(FeatureBase feature, ContextRule rule)
 {
     Feature = feature;
     Rule    = rule;
 }
 public void DirtyRule(ContextRule rule)
 {
     rule.SetRuleDirty();
     dirtyRules.Add(rule);
 }