private function checkTrackedClassPropertyTypeAmount() : array
{
$segregatedPropertyList = $this->getClassPropertiesSegregatedByType();
$errorList = [];
$overLimitPropertyList = array_filter($segregatedPropertyList, function (array $propertyOfTypeList) {
$propertyOfTypeAmount = count($propertyOfTypeList);
return $propertyOfTypeAmount > $this->trackedMaxCount;
});
foreach ($overLimitPropertyList as $propertyType => $propertyOfTypeList) {
$errorList[] = sprintf('You have %d properties of "%s" type, must be less or equals than %d properties in total', count($propertyOfTypeList), $propertyType, $this->trackedMaxCount);
}
return $errorList;
}