public function execute(array $arguments = array())
    {
        if ($this->source) {
            $this->addSource($arguments);
        }

        if ($this->deserialization) {
            $this->addSerializationWorker();
        }

        if (isset($this->deserialization['multiple']) && $this->deserialization['multiple']) {
            $this->builder->split();
        }

        if ($this->virtualProperties) {
            $this->addVirtualizationWorker($arguments);
        }

        $response = parent::execute($arguments);

        if (isset($this->deserialization['multiple']) && $this->deserialization['multiple']) {
            return $response->getIterator();
        } else {
            return $response->getIterator()->current();
        }
    }
public function execute(array $arguments = array())
    {
        if ($this->source) {
            $this->addSource($arguments);
        }

        if ($this->deserialization) {
            $this->addSerializationWorker();
        }

        if (isset($this->deserialization['multiple']) && $this->deserialization['multiple']) {
            $this->builder->split();
        }

        if ($this->virtualProperties) {
            $this->addVirtualizationWorker($arguments);
        }

        $response = parent::execute($arguments);

        if (isset($this->deserialization['multiple']) && $this->deserialization['multiple']) {
            return $response->getIterator();
        } else {
            return $response->getIterator()->current();
        }
    }
{@inheritdoc}