/** * Used to inform the loader of its state as a sub loader, or as the top of the chain. * * This is important as it ensures that we do not have more than one loader keeping persistent data. * Subloaders need to be "pure" loaders in the sense that they are used to store and retrieve information from stores or the * next loader/data source in the chain. * Nothing fancy, nothing flash. * * @param bool $setting */ protected function set_is_sub_loader($setting = true) { if ($setting) { $this->subloader = true; // Subloaders should not keep persistent data. $this->persist = false; $this->persistmaxsize = false; } else { $this->subloader = true; $this->persist = $this->definition->should_be_persistent(); if ($this->persist) { $this->persistmaxsize = $this->definition->get_persistent_max_size(); } } }