I think you are missing a check for filters, might need something like:

   if self.content_view_definition.composite?  && !self.filters.empty?

Otherwise looks good, I would write a test though