/**
  * {@inheritdoc}
  */
 public function dataProviderFactory()
 {
     if ($this->dataProvider && $this->dataProvider instanceof CacheDecoratedDataProvider) {
         return $this->dataProvider;
     }
     // Get the data provider from the subject of the decorator.
     $decorated_provider = $this->subject->dataProviderFactory();
     $this->dataProvider = new CacheDecoratedDataProvider($decorated_provider, $this->getCacheController());
     $plugin_definition = $this->getPluginDefinition();
     $this->dataProvider->addOptions(array('renderCache' => $this->defaultCacheInfo(), 'resource' => array('version' => array('major' => $plugin_definition['majorVersion'], 'minor' => $plugin_definition['minorVersion']), 'name' => $plugin_definition['resource'])));
     return $this->dataProvider;
 }
 /**
  * {@inheritdoc}
  */
 public function remove($identifier)
 {
     $this->decorated->remove($identifier);
 }
 /**
  * {@inheritdoc}
  */
 public function count()
 {
     return $this->referencedDataProvider->count();
 }
 /**
  * {@inheritdoc}
  */
 public function getResourcePath()
 {
     return $this->subject->getResourcePath();
 }