Class: CmisServer::ObjectAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/cmis_server/object_adapter.rb

Direct Known Subclasses

ItemAdapter

Defined Under Namespace

Classes: ClassAdapter, ObjectPersistenceError

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(object, context:) ⇒ ObjectAdapter

Returns a new instance of ObjectAdapter.



38
39
40
41
# File 'lib/cmis_server/object_adapter.rb', line 38

def initialize(object, context:)
  @object =object
  @context=context
end

Instance Attribute Details

#contextObject (readonly)

Returns the value of attribute context.



36
37
38
# File 'lib/cmis_server/object_adapter.rb', line 36

def context
  @context
end

#objectObject (readonly)

Returns the value of attribute object.



36
37
38
# File 'lib/cmis_server/object_adapter.rb', line 36

def object
  @object
end

Class Method Details

.class_adapter(context:) ⇒ Object



28
29
30
# File 'lib/cmis_server/object_adapter.rb', line 28

def self.class_adapter(context:)
  (self.to_s+"::ClassAdapter").constantize.new(context: context)
end

Instance Method Details

#add_secondary_type(secondary_type_id) ⇒ Object



55
56
57
58
59
60
61
62
# File 'lib/cmis_server/object_adapter.rb', line 55

def add_secondary_type(secondary_type_id)
  secondary_type_ids = @object.properties["cmis:secondaryObjectTypeIds"]&.value || []
  return false if secondary_type_ids.include?(secondary_type_id)
  
  secondary_type_ids << secondary_type_id
  @object.properties["cmis:secondaryObjectTypeIds"].value = secondary_type_ids
  save
end

#class_adapterObject



32
33
34
# File 'lib/cmis_server/object_adapter.rb', line 32

def class_adapter
  (self.to_s+"::ClassAdapter").constantize.new(context: context)
end

#reload!Object



51
52
53
# File 'lib/cmis_server/object_adapter.rb', line 51

def reload!
  object.copy_properties_values_of(self.class.find(object.cmis_object_id))
end

#remove_secondary_type(secondary_type_id) ⇒ Object



64
65
66
67
68
69
70
71
# File 'lib/cmis_server/object_adapter.rb', line 64

def remove_secondary_type(secondary_type_id)
  secondary_type_ids = @object.properties["cmis:secondaryObjectTypeIds"]&.value || []
  return false unless secondary_type_ids.include?(secondary_type_id)
  
  secondary_type_ids.delete(secondary_type_id)
  @object.properties["cmis:secondaryObjectTypeIds"].value = secondary_type_ids
  save
end

#saveObject

Raises:

  • (NotImplementedError)


47
48
49
# File 'lib/cmis_server/object_adapter.rb', line 47

def save
  raise NotImplementedError
end

#save!Object



43
44
45
# File 'lib/cmis_server/object_adapter.rb', line 43

def save!
  raise ObjectPersistenceError unless save
end

#secondary_typesObject



73
74
75
76
# File 'lib/cmis_server/object_adapter.rb', line 73

def secondary_types
  secondary_type_ids = @object.properties["cmis:secondaryObjectTypeIds"]&.value || []
  secondary_type_ids.map { |id| CmisServer::TypeRegistry.find_type(id) }
end