public function set($offset = null, $data = [])
    {
        $name = $this->_through;
        $this->_parent->{$name}->set($offset, $this->_item($data));
        return $this;
    }
public function set($offset = null, $data = [])
    {
        $name = $this->_through;
        $this->_parent->{$name}->set($offset, $this->_item($data));
        return $this;
    }
public function set ( $ offset = null , $ data = [ ] ) { $ name = $ this -> _through ; $ this -> _parent -> { $ name } -> set ( $ offset , $ this -> _item ( $ data ) ) ; return $ this ; }
Sets data to a specified offset and wraps all data array in its appropriate object type.

@param  mixed   $offset  The offset. If offset is `null` data is simply appended to the set.
@param  mixed   $data    An array or an entity instance to set.
@return self             Return `this`.
Sets data to a specified offset and wraps all data array in its appropriate object type .