Method: CmisServer::CmisObject#update_properties

Defined in:
lib/cmis_server/cmis_object.rb

#update_properties(properties_hash) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/cmis_server/cmis_object.rb', line 81

def update_properties(properties_hash)
  properties_hash.each do |prop_id, value|
    if @properties.key?(prop_id)
      @properties[prop_id].value = value
    else
      # Vérifier si cette propriété appartient à un type secondaire que nous n'avons pas encore
      property_def = find_property_definition(prop_id)
      if property_def && property_def.owning_type && property_def.owning_type.base_id == 'cmis:secondary'
        # Ajouter automatiquement le type secondaire
        add_secondary_type(property_def.owning_type)
        # Puis définir la valeur
        @properties[prop_id].value = value
      else
        raise ArgumentError, "Property #{prop_id} does not exist for this object"
      end
    end
  end
end