2 namespace TYPO3\CMS\Extbase\Mvc\Controller;
50 parent::__construct();
65 throw new \InvalidArgumentException(
'Controller arguments must be valid TYPO3\\CMS\\Extbase\\Mvc\\Controller\\Argument objects.', 1187953786);
67 $argumentName = $value->getName();
68 parent::offsetSet($argumentName, $value);
69 $this->argumentNames[$argumentName] =
true;
82 throw new \InvalidArgumentException(
'Controller arguments must be valid TYPO3\\CMS\\Extbase\\Mvc\\Controller\\Argument objects.', 1187953787);
95 $translatedOffset = $this->translateToLongArgumentName($offset);
96 parent::offsetUnset($translatedOffset);
97 unset($this->argumentNames[$translatedOffset]);
98 if ($offset != $translatedOffset) {
99 unset($this->argumentShortNames[$offset]);
111 $translatedOffset = $this->translateToLongArgumentName($offset);
112 return parent::offsetExists($translatedOffset);
124 $translatedOffset = $this->translateToLongArgumentName($offset);
125 if ($translatedOffset ===
'') {
126 throw new \TYPO3\CMS\Extbase\Mvc\Exception\NoSuchArgumentException(
'The argument "' . $offset .
'" does not exist.', 1216909923);
128 return parent::offsetGet($translatedOffset);
142 public function addNewArgument($name, $dataType =
'Text', $isRequired =
false, $defaultValue = null)
145 $argument = $this->objectManager->get(\TYPO3\CMS\Extbase\Mvc\Controller\Argument::class, $name, $dataType);
146 $argument->setRequired($isRequired);
147 $argument->setDefaultValue($defaultValue);
177 throw new \TYPO3\CMS\Extbase\Mvc\Exception\NoSuchArgumentException(
'An argument "' . $argumentName .
'" does not exist.', 1195815178);
201 return array_keys($this->argumentNames);
209 public function getArgumentShortNames()
213 foreach ($this as $argument) {
228 public function __call($methodName, array $arguments)
230 if (substr($methodName, 0, 3) !==
'set') {
231 throw new \LogicException(
'Unknown method "' . $methodName .
'".', 1210858451);
233 $firstLowerCaseArgumentName = $this->translateToLongArgumentName(strtolower($methodName[3]) . substr($methodName, 4));
234 $firstUpperCaseArgumentName = $this->translateToLongArgumentName(ucfirst(substr($methodName, 3)));
236 $argument = parent::offsetGet($firstLowerCaseArgumentName);
237 $argument->setValue($arguments[0]);
239 $argument = parent::offsetGet($firstUpperCaseArgumentName);
240 $argument->setValue($arguments[0]);
254 protected function translateToLongArgumentName($argumentName)
257 return $argumentName;
260 foreach ($this as $argument) {
261 if ($argumentName === $argument->getShortName()) {
262 return $argument->getName();
275 foreach ($this->argumentNames as $argumentName => $booleanValue) {
276 parent::offsetUnset($argumentName);
278 $this->argumentNames = array();
286 public function getValidationResults()
288 $results = new \TYPO3\CMS\Extbase\Error\Result();
290 foreach ($this as $argument) {
291 $argumentValidationResults = $argument->getValidationResults();
292 if ($argumentValidationResults === null) {
295 $results->forProperty($argument->getName())->merge($argumentValidationResults);