--- /dev/null
+require_dependency "local_manifest/list_group/list/base"
+require_dependency "local_manifest/list_group/list/public"
+require_dependency "local_manifest/list_group/list/private"
+require_dependency "local_manifest/list_group/list/system_resource"
+require_dependency "local_manifest/list_group/list/filter"
+require_dependency "local_manifest/list_group/list/through_filter"
+require_dependency "local_manifest/list_group/list/foreign_filter"
+require_dependency "local_manifest/list_group/list/play"
+module LocalManifest
+ module ListGroupModule
+ class ListFactory
+ include ListModule
+
+ def self.types
+ {
+ 'public' => PublicList, 'private' => PrivateList, 'system_resource' => SystemResourceList,
+ 'filter' => FilterList, 'through_filter' => ThroughFilterList, 'foreign_filter' => ForeignFilterList,
+ 'play' => PlayList
+ }
+ end
+
+ def self.factory list_group, list_name, my_manifest
+ my_manifest['type'] ||= 'public'
+ type = my_manifest['type']
+ raise "undefined type for list_groups > #{list_group.item_name} > #{list_name}\n" unless type
+ my_class = self.types[type]
+ raise "undefined class for list_groups > #{list_group.item_name} > #{list_name} > #{type}\n" unless my_class
+ my_class.new(list_group, list_name, my_manifest)
+ end
+
+ end
+ end
+
+end
+