private function accumulate(Map $acc, BaseProperty $property) { if (!$acc->has($property->name())) { $acc->set($property->name(), $property); } else { $multi = $acc->get($property->name()); if (!$multi instanceof property\MultiProperty) { $multi = new property\MultiProperty($this->factory, $property); $multi->add($acc->get($property->name())); $acc->set($property->name(), $multi); } $multi->add($property); } }
public function __construct(TypeFactory $factory, BaseProperty $base) { parent::__construct($factory, $base->class, $base->name()); }