/** * @param CallbackBag $callbackBag * @return mixed * @throws \Exception */ public function callback(CallbackBag $callbackBag) { if (!$callbackBag->argumentExists(0)) { throw new \InvalidArgumentException($this->getPrefix() . ' accessor needs at least a value!'); } Hint::validateOrException($callbackBag->getName(), $callbackBag->getArgument(0), $callbackBag->getHint(), $callbackBag->getNullable()); $this->propertyDefault($callbackBag); $this->updateProperty($callbackBag); return $callbackBag->getObject(); }