Class: YACCL::Model::ObjectFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/yaccl/model/object_factory.rb

Class Method Summary collapse

Class Method Details

.create(repository_id, raw) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/yaccl/model/object_factory.rb', line 4

def self.create(repository_id, raw)
  base_type_id = if raw[:properties]
    raw[:properties][:'cmis:baseTypeId'][:value]
  elsif raw[:succinctProperties]
    raw[:succinctProperties][:'cmis:baseTypeId']
  else
    raise "Unexpected raw: #{raw}"
  end
  
  case base_type_id
  when 'cmis:folder' then Folder.new(repository_id, raw)
  when 'cmis:document' then Document.new(repository_id, raw)
  when 'cmis:relationship' then Relationship.new(repository_id, raw)
  when 'cmis:policy' then Policy.new(repository_id, raw)
  when 'cmis:item' then Item.new(repository_id, raw)
  else raise "Unexpected baseTypeId: #{base_type_id}."
  end
end