/**
  * @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();
 }