+void Collection::add_future(const std::string &name)
+{
+ if(items.count(name))
+ throw key_error(typeid(ItemMap));
+
+ for(TypeList::const_iterator i=types.begin(); i!=types.end(); ++i)
+ if((*i)->match_name(name))
+ {
+ items.insert(ItemMap::value_type(name, (*i)->create_future()));
+ return;
+ }
+
+ /* XXX throw something? If we do, DirectoryCollection needs some way to
+ check if a name matches any item type. */
+}
+