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; }