module ActiveFedora::FileManagement

def collection_members_append(obj)

Other tags:
    Example: This will add a has_collection_member relationship to the parent_object's RELS-EXT datastream pointing at child_object -

Returns:
  • (ActiveFedora::Base) - obj returns self

Parameters:
  • obj (ActiveFedora::Base) -- the file to add
def collection_members_append(obj)
  add_relationship(:has_collection_member, obj)
  return self
end

def collection_members_remove()

def collection_members_remove()
  # will rely on SemanticNode.remove_relationship once it is implemented
end

def file_objects(opts={})

Returns:
  • (Array of ActiveFedora objects, Array of PIDs, or Solr::Result) - -- same options as auto-generated methods for relationships (ie. :response_format)

Parameters:
  • opts (Hash) -- -- same options as auto-generated methods for relationships (ie. :response_format)
def file_objects(opts={})
  cm_array = collection_members(:response_format=>:id_array)
  
  if !cm_array.empty?
    logger.warn "This object has collection member assertions.  hasCollectionMember will no longer be used to track file_object relationships after active_fedora 1.3.  Use isPartOf assertions in the RELS-EXT of child objects instead."
    if opts[:response_format] == :solr || opts[:response_format] == :load_from_solr
      logger.warn ":solr and :load_from_solr response formats for file_objects search only uses parts relationships (usage of hasCollectionMember is no longer supported)"
      result = parts(opts)
    else
      cm_result = collection_members(opts)
      parts_result = parts(opts)
      ary = cm_result+parts_result
      result = ary.uniq
    end
  else
    result = parts(opts)
  end
  return result
end

def file_objects_append(obj)

Other tags:
    Example: This will add an is_part_of relationship to the child_object's RELS-EXT datastream pointing at parent_object -

Returns:
  • (Boolean) - whether saving the child object was successful

Parameters:
  • obj (ActiveFedora::Base, String) -- the object or the pid of the object to add
def file_objects_append(obj)
  # collection_members_append(obj)
  unless obj.kind_of? ActiveFedora::Base
    begin
      obj = ActiveFedora::Base.find(obj)
    rescue ActiveFedora::ObjectNotFoundError
      "You must provide either an ActiveFedora object or a valid pid to add it as a file object.  You submitted #{obj.inspect}"
    end
  end
  obj.add_relationship(:is_part_of, self)
  obj.save
end