public handlesStateFor ( |
||
$subscriptionGroup |
public function handlesStateFor(SubscriptionGroup $subscriptionGroup)
{
if ($subscriptionGroup->getMatchType() == $this->getMatchType() || $subscriptionGroup->getMatchType() == "exact") {
$sgUri = $subscriptionGroup->getUri();
$sgOptions = $subscriptionGroup->getOptions();
return $this->matcher->isSubGroup($this->getUri(), $this->getOptions(), $sgUri, $sgOptions);
}
return false;
}
/** * @param StateHandlerRegistration $stateHandlerRegistration */ private function mapNewStateHandlerRegistration($stateHandlerRegistration) { $subscriptionGroups = $this->broker->getSubscriptionGroups(); /** @var SubscriptionGroup $subscriptionGroup */ foreach ($subscriptionGroups as $subscriptionGroup) { // only check groups without an existing state handler if (!$this->stateHandlerMap->contains($subscriptionGroup) || $this->stateHandlerMap->contains($subscriptionGroup) && $this->stateHandlerMap[$subscriptionGroup] === null) { if ($stateHandlerRegistration->handlesStateFor($subscriptionGroup)) { $this->stateHandlerMap[$subscriptionGroup] = $stateHandlerRegistration; } } } }