public static function object2form($object, Form $form, $ignoreNull = true)
 {
     Assert::isTrue(is_object($object));
     $primitives = $form->getPrimitiveList();
     if ($object instanceof Prototyped) {
         $proto = $object->proto();
         foreach (array_keys($proto->getExpandedPropertyList()) as $name) {
             if ($form->primitiveExists($name)) {
                 $proto->importPrimitive($name, $form, $form->get($name), $object, $ignoreNull);
             }
         }
     } else {
         $class = new ReflectionClass($object);
         foreach ($class->getProperties() as $property) {
             $name = $property->getName();
             if (isset($primitives[$name])) {
                 $getter = 'get' . ucfirst($name);
                 if ($class->hasMethod($getter)) {
                     $value = $object->{$getter}();
                     if (!$ignoreNull || $value !== null) {
                         $form->importValue($name, $value);
                     }
                 }
             }
         }
     }
 }