X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcollection.cpp;fp=source%2Fcollection.cpp;h=2333aaf2726082a6214d2b950aa4570ebc1ea64b;hb=a7272165a9dc6a1e9c408e77f96530a7d3aa24e1;hp=87982e8f4baa5df80ec1dbe257e33ba4b83af594;hpb=aa88b0343c2a02d13b166a789e453ce1a056039b;p=libs%2Fdatafile.git diff --git a/source/collection.cpp b/source/collection.cpp index 87982e8..2333aaf 100644 --- a/source/collection.cpp +++ b/source/collection.cpp @@ -35,6 +35,14 @@ const Variant &Collection::get_var(const string &name, const CollectionItemTypeB return get_item(items, name); } +CollectionItemTypeBase *Collection::get_type_for_item(const Variant &var) const +{ + for(TypeList::const_iterator i=types.begin(); i!=types.end(); ++i) + if((*i)->check_item_type(var)) + return *i; + return 0; +} + void Collection::add_source(CollectionSource &s) { sources.push_back(&s); @@ -49,13 +57,10 @@ Collection::Loader::Loader(Collection &c): } -CollectionItemTypeBase::CollectionItemTypeBase(): - tag(0) -{ } - CollectionItemTypeBase::~CollectionItemTypeBase() { - delete tag; + for(vector::iterator i=extractors.begin(); i!=extractors.end(); ++i) + delete *i; } void CollectionItemTypeBase::set_keyword(const string &k)