 
 (defn element->num-range
   [concept-type element]
-  (let [string-double-fn #(when-not (str/blank? %) (Double. (remove-outer-single-quotes %)))
+  (let [string-double-fn #(when-not (string/blank? %) (Double. (remove-outer-single-quotes %)))
         range-val (-> (cx/attrs-at-path element [:range])
                       (set/rename-keys {:lower :min-value :upper :max-value})
                       (update-in [:min-value] string-double-fn)

             :dayNightFlag {:name :day-night :type :day-night}
             :ECHOLastUpdate {:name :updated-since :type :date-range}
             :onlineOnly {:name :downloadable :type :boolean}
             :ECHOCollectionID {:name :collection-concept-id :type :string}
             :ECHOGranuleID {:name :concept-id :type :string}
             :ProducerGranuleID {:name :producer-gran-id :type :string}
             :sensorName {:name :sensor :type :string}
             :sourceName {:name :platform :type :string}

(ns cmr.search.services.aql.conversion
  "Contains functions for parsing and converting aql to query conditions"
  (:require
   [clj-time.core :as t]
   [clojure.data.xml :as x]
   [clojure.java.io :as io]
   [clojure.set :as set]
   [clojure.string :as string]
   [cmr.common-app.services.search.group-query-conditions :as gc]
   [cmr.common-app.services.search.params :as common-params]
   [cmr.common-app.services.search.query-model :as cqm]
   [cmr.common.concepts :as cc]
   [cmr.common.services.errors :as errors]
   [cmr.common.util :as u]
   [cmr.common.xml :as cx]
   [cmr.search.models.query :as qm]
   [cmr.search.services.messages.common-messages :as msg]
   [cmr.search.services.parameters.conversion :as pc]
   [cmr.search.services.parameters.parameter-validation :as pv]))

(def aql-elem->converter-attrs
  "A mapping of aql element names to query condition types based on concept-type"
