EventListener/ModifyEventListener.php
protected function transform(DocumentInterface $document, $entity, $skip = null)
    {
        $entityMethods = get_class_methods($entity);
        $documentMethods = get_class_methods($document);
        if ($skip === null) {
            $skip = $this->getCopySkipFields();
        }

        foreach ($entityMethods as $method) {
            if (strpos($method, 'get') !== 0) {
                continue;
            }
            $property = substr($method, 3);
            if (in_array(lcfirst($property), $skip)) {
                continue;
            }
            $setter = 'set' . $property;
            if (in_array($setter, $documentMethods)) {
                $document->{$setter}($entity->{$method}());
            }
        }
    }
protected function transform(DocumentInterface $document, $entity, $skip = null)
    {
        $entityMethods = get_class_methods($entity);
        $documentMethods = get_class_methods($document);
        if ($skip === null) {
            $skip = $this->getCopySkipFields();
        }

        foreach ($entityMethods as $method) {
            if (strpos($method, 'get') !== 0) {
                continue;
            }
            $property = substr($method, 3);
            if (in_array(lcfirst($property), $skip)) {
                continue;
            }
            $setter = 'set' . $property;
            if (in_array($setter, $documentMethods)) {
                $document->{$setter}($entity->{$method}());
            }
        }
    }
Copies properties that have matching getter and setter.

@param DocumentInterface $document
@param object            $entity
@param string[]          $skip