private function groupByJoinpoints(IMap $advicesJoinpoints) { $groupedByJoinpoints = new Map(); foreach ($advicesJoinpoints->getKeys() as $advice) { list($joinpoints, $aspectDefinition) = $advicesJoinpoints->getValue($advice); foreach ($joinpoints as $joinpoint) { if (!$groupedByJoinpoints->exists($joinpoint)) { $groupedByJoinpoints->put($joinpoint, new ArrayList()); } /** @var ArrayList $advices */ $advices = $groupedByJoinpoints->getValue($joinpoint); $advices->put([$advice, $aspectDefinition]); } } return $groupedByJoinpoints; }