private function specifyCloneProperties($properties)
{
foreach ($properties as $property) {
$propertyName = $property->getName();
$propertyValue = $property->getValue();
if ($this->specifyConfig->classIgnored($propertyValue)) {
continue;
}
if ($this->specifyConfig->propertyIsShallowCloned($propertyName)) {
if (is_object($propertyValue)) {
$property->setValue(clone $propertyValue);
} else {
$property->setValue($propertyValue);
}
}
if ($this->specifyConfig->propertyIsDeeplyCloned($propertyName)) {
$property->setValue($this->copier->copy($propertyValue));
}
}
}