protected function _update($entity, NetLicensingAPI $nlic_connect)
 {
     if (!is_object($entity)) {
         throw new NetLicensingException('Invalid entity, expect to be a object, ' . gettype($entity) . ' given');
     }
     if (!$entity instanceof BaseEntity) {
         throw new NetLicensingException('Invalid entity ' . get_class($entity) . ', entity must be instanceof BaseEntity');
     }
     if (!$entity->getOldProperty('number')) {
         throw new NetLicensingException('The ' . get_class($entity) . ' cannot be updated because property "number" is missing or ProductModule is new.');
     }
     $service_url = $this->_getServiceRequestUrl();
     $response = $nlic_connect->post($service_url . '/' . $entity->getOldProperty('number'), $entity->getProperties());
     $properties_array = NetLicensingAPI::getPropertiesByXml($response);
     if (empty($properties_array)) {
         return FALSE;
     }
     $properties = reset($properties_array);
     $entity->setProperties($properties, TRUE);
     return $entity;
 }