public function offsetGet($offset) {
        if($pair = static::__ResolveTrait_hasObjectAnnotation($this, $offset)) {
            if($this->$offset === NULL && $pair[0]->auto_resolve) {
                $this->$offset = $pair[0]->factory($this, $pair[1]);
            }

            return $this->$offset;
        }

        user_error("Undefined index: $offset", E_USER_NOTICE);
    }