public function offsetGet($key)
{
if ($this->innerAsserter === null) {
if ($this->analyzer->isArray($this->hasKey($key)->value[$key]) === true) {
parent::setWith($this->value[$key]);
} else {
$this->fail($this->_('Value %s at key %s is not an array', $this->getTypeOf($this->value[$key]), $key));
}
} else {
if (array_key_exists($key, $this->innerValue) === false) {
$this->fail($this->_('%s has no key %s', $this->getTypeOf($this->innerValue), $this->getTypeOf($key)));
} else {
$this->innerValue = $this->innerValue[$key];
$this->innerValueIsSet = true;
}
}
return $this;
}