protected void Apply(T ruleContext, string paramter, string value)
        {
            Assert.ArgumentNotNull(ruleContext, "ruleContext");
            Assert.ArgumentNotNull(paramter, "paramter");

            RenderingSettings settings = ruleContext.Reference.Settings;
            RenderingCaching  caching  = settings.Caching;

            if (caching != null)
            {
                if ((caching.Cacheable && !caching.VaryByData) && (settings.DataSource != paramter))
                {
                    string name;
                    var    renderingItem = ruleContext.Reference.RenderingItem;

                    if (renderingItem != null)
                    {
                        name = renderingItem.Name;
                    }
                    else
                    {
                        var renderingId = ruleContext.Reference.RenderingID;
                        {
                            name = renderingId.ToString();
                        }
                    }

                    Log.Warn(string.Format("A rule overwrites the data source of the item {0} which is cachable and not vary by data. Possibly, this value is not be used as the rendering is cached.", name), GetType());
                }
            }
        }
        protected virtual void AddCachingSettings(Rendering rendering)
        {
            RenderingCaching renderingCaching = rendering.RenderingItem.Caching;

            rendering.Caching.VaryByData          = renderingCaching.VaryByData;
            rendering.Caching.VaryByDevice        = renderingCaching.VaryByDevice;
            rendering.Caching.VaryByLogin         = renderingCaching.VaryByLogin;
            rendering.Caching.VaryByParameters    = renderingCaching.VaryByParm;
            rendering.Caching.VaryByQueryString   = renderingCaching.VaryByQueryString;
            rendering.Caching.VaryByUser          = renderingCaching.VaryByUser;
            rendering[ClearOnIndexUpdateCacheKey] = renderingCaching.ClearOnIndexUpdate ? "1" : string.Empty;
        }