/**
  * Takes a bunch of params that are needed to match certain criteria and
  * retrieves the relevant objects. Typically the valid params are only
  * contact_id. We'll tweak this function to be more full featured over a period
  * of time. This is the inverse function of create. It also stores all the retrieved
  * values in the default array
  *
  * @param array $params (reference) an assoc array of name/value pairs
  * @param array $defaults (reference) an assoc array to hold the flattened values
  *
  * @return object CRM_CiviDiscount_BAO_Item object on success, null otherwise
  * @access public
  * @static
  */
 static function retrieve(&$params, &$defaults)
 {
     $item = new CRM_CiviDiscount_DAO_Track();
     $item->copyValues($params);
     if ($item->find(TRUE)) {
         CRM_Core_DAO::storeValues($item, $defaults);
         return $item;
     }
     return NULL;
 }