private static function doPropertyBuild(MetaClass $class, MetaClassProperty $property, $isNamed)
 {
     if ($parentProperty = $class->isRedefinedProperty($property->getName())) {
         // check wheter property fetch strategy becomes lazy
         if ($parentProperty->getFetchStrategyId() != $property->getFetchStrategyId() && $property->getFetchStrategyId() === FetchStrategy::LAZY) {
             return true;
         }
         return false;
     }
     if ($isNamed && $property->getName() == 'name') {
         return false;
     }
     if ($property->getName() == 'id' && !$property->getClass()->getParent()) {
         return false;
     }
     // do not redefine parent's properties
     if ($property->getClass()->getParent() && array_key_exists($property->getName(), $property->getClass()->getAllParentsProperties())) {
         return false;
     }
     return true;
 }