addOrRestoreFromTrash() public method

Add a printer. If already exist in dustbin restore it
public addOrRestoreFromTrash ( $name, $manufacturer, $entity, $comment = '' )
$name the printer's name (need to be addslashes)
$manufacturer the software's manufacturer (need to be addslashes)
$entity the entity in which the software must be added
$comment comment (default '')
 /**
  * Replay dictionnary on one printer
  *
  * @param &$new_printers   array containing new printers already computed
  * @param $res_rule        array of rule results
  * @param $params          array
  * @param &$printers_ids   array containing replay printer need to be dustbined
  **/
 function replayDictionnaryOnOnePrinter(array &$new_printers, array $res_rule, $params = array(), array &$printers_ids)
 {
     global $DB;
     $p['id'] = 0;
     $p['name'] = '';
     $p['manufacturer'] = '';
     $p['is_global'] = '';
     $p['entity'] = 0;
     foreach ($params as $key => $value) {
         $p[$key] = $value;
     }
     $input["name"] = $p['name'];
     $input["manufacturer"] = $p['manufacturer'];
     if (empty($res_rule)) {
         $res_rule = $this->processAllRules($input, array(), array());
     }
     $printer = new Printer();
     //Printer's name has changed
     if (isset($res_rule["name"]) && $res_rule["name"] != $p['name']) {
         $manufacturer = "";
         if (isset($res_rule["manufacturer"])) {
             $manufacturer = addslashes(Dropdown::getDropdownName("glpi_manufacturers", $res_rule["manufacturer"]));
         } else {
             $manufacturer = addslashes($p['manufacturer']);
         }
         //New printer not already present in this entity
         if (!isset($new_printers[$p['entity']][$res_rule["name"]])) {
             // create new printer or restore it from dustbin
             $new_printer_id = $printer->addOrRestoreFromTrash($res_rule["name"], $manufacturer, $p['entity']);
             $new_printers[$p['entity']][$res_rule["name"]] = $new_printer_id;
         } else {
             $new_printer_id = $new_printers[$p['entity']][$res_rule["name"]];
         }
         // Move direct connections
         $this->moveDirectConnections($p['id'], $new_printer_id);
     } else {
         $new_printer_id = $p['id'];
         $res_rule["id"] = $p['id'];
         if (isset($res_rule["manufacturer"])) {
             if ($res_rule["manufacturer"] != '') {
                 $res_rule["manufacturers_id"] = $res_rule["manufacturer"];
             }
             unset($res_rule["manufacturer"]);
         }
         $printer->update($res_rule);
     }
     // Add to printer to deleted list
     if ($new_printer_id != $p['id']) {
         $printers_ids[] = $p['id'];
     }
 }