     [obj parent]
     (assoc obj :parent parent))
 
-
   java.util.List
   (set-parent
     [obj parent]

    (-> granule
        (assoc :parent coll)
        (update-in [:spatial-coverage] set-parent (:spatial-coverage coll))
        (update-in [:platform-refs] set-parent (:platforms coll))
        (update-in [:product-specific-attributes]
                   set-parents-by-name (:product-specific-attributes coll) :name)))



  PlatformRef
  (set-parent
    [platform-ref platform]
    (-> platform-ref
        (assoc :parent platform)
        (update-in [:instrument-refs] set-parents-by-name (:instruments platform) :short-name)))

  InstrumentRef
  (set-parent
    [instrument-ref instrument]
    (-> instrument-ref
        (assoc :parent instrument)
        (update-in [:sensor-refs] set-parents-by-name (:sensors instrument) :short-name)))

  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;; The protocol is extended to nil so we can attempt to set the parent on items which do not have
