public function perform($targetDocument)
{
$pointer = new Pointer($targetDocument);
try {
$get = $pointer->get($this->getFrom());
} catch (NonexistentValueReferencedException $e) {
return $targetDocument;
}
if ($this->getFrom() === $this->getPath()) {
return $targetDocument;
}
$operation = new \stdClass();
$operation->path = $this->getPath();
$operation->value = $get;
$add = new Add($operation);
return $add->perform($targetDocument);
}