--- /dev/null
+require_dependency "manifest/model/peta/base"
+require_dependency "manifest/model/peta/item"
+require_dependency "manifest/model/peta/owner"
+require_dependency "manifest/model/peta/content"
+require_dependency "manifest/model/peta/root"
+require_dependency "manifest/model/peta/element"
+module Manifest
+ module ModelModule
+ class PetaFactory
+ include PetaModule
+ @@types = {
+ 'item' => ItemPeta, 'owner' => OwnerPeta, 'content' => ContentPeta,
+ 'root' => RootPeta, 'element' => ElementPeta
+ }
+ def self.factory model, my_manifest
+ my_manifest['type'] ||= 'item'
+ type = my_manifest['type']
+ raise "undefined type for models > #{model.model_name} > peta \n" unless type
+ my_class = @@types[type]
+ raise "undefined class for models > #{model.fmodel_name} > peta > #{type}\n" unless my_class
+ my_class.new(model, my_manifest)
+ end
+
+ end
+
+ end
+end