private function _deleteObject(PersistentObject $object, ClassMap $classMap, &$commands)
 {
     $mmCmd = array();
     $associationMaps = $classMap->getAssociationMaps();
     if (count($associationMaps)) {
         foreach ($associationMaps as $associationMap) {
             if (!$associationMap->isDeleteAutomatic()) {
                 continue;
             }
             $this->__deleteAssociation($object, $associationMap, $mmCmd, $classMap);
         }
     }
     $statement = $classMap->getDeleteSqlFor($object);
     $commands[] = $statement->delete();
     if (count($mmCmd)) {
         $commands = array_merge($mmCmd, $commands);
     }
     $this->logger($commands, $classMap, $object, 'delete');
     if ($classMap->getSuperClassMap() != NULL) {
         $this->_deleteObject($object, $classMap->getSuperClassMap(), $commands);
     }
     $object->setPersistent(FALSE);
 }