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
|