Hi all,

What is the idiomatic way to decorate a nested graph with multiple
decorators?  Let me explain:

I have a list of graphs:

[
{  :id 1
  propertyA: {:customer 1 :name whatever :date (Date.)}
  propertyB: {:customer 1 :created (Date.) :someOtherProperty 13}
}
]

After creating this graph (and only after, not before), I can now retrieve
all the customers I need and create map (using group-by) of customerId:
customer.  I also want to replace all the Dates to millisecondsSinceEpoch.
 Just for fun I also want to decorate all instances of propertyA (but not
propertyB) with an extra property.

Some contraints: I cannot decorate each item at the time it is being
loaded.  For example, I need to load the entire graph to identify which
customers are needed, which I can then load in one batch.  I can't load all
the customers because there are a gazillion of them.

What I am currently doing is a wonderfully complex combination of defining
each decorator as a separate function and then using nested fors.
 Something like:

(defn transform [graphs]
  (let [
customers (load-customers-by-id graphs)
        ]

  (defn resolve-customer [g] (assoc g :customer ((:customer g) customers)
)

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to