public static function createFromArray(array $array = array())
 {
     $entity = new self();
     foreach ($array as $propertyName => $propertyValue) {
         if (!property_exists($entity, $propertyName)) {
             // ignore unknown entities like "metadata"
             continue;
         }
         $entity->{$propertyName} = parent::cleanValue($propertyValue);
     }
     return $entity;
 }