class FedoraMigrate::RelsExtDatastreamMover

Constants

RELS_EXT_DATASTREAM

Public Instance Methods

migrate() click to toggle source
Calls superclass method FedoraMigrate::Mover#migrate
# File lib/fedora_migrate/rels_ext_datastream_mover.rb, line 5
def migrate
  migrate_statements
  target.ldp_source.update
  update_index
  super
end
post_initialize() click to toggle source
# File lib/fedora_migrate/rels_ext_datastream_mover.rb, line 12
def post_initialize
  @target ||= ActiveFedora::Base.find(id_component)
rescue ActiveFedora::ObjectNotFoundError
  raise FedoraMigrate::Errors::MigrationError, "Target object was not found in Fedora 4. Did you migrate it?"
end

Private Instance Methods

graph() click to toggle source
# File lib/fedora_migrate/rels_ext_datastream_mover.rb, line 33
def graph
  @graph ||= RDF::Graph.new { |g| g.from_rdfxml(source.datastreams[RELS_EXT_DATASTREAM].content) }
end
migrate_object(fc3_uri) click to toggle source
# File lib/fedora_migrate/rels_ext_datastream_mover.rb, line 42
def migrate_object(fc3_uri)
  RDF::URI.new(ActiveFedora::Base.id_to_uri(id_component(fc3_uri)))
end
migrate_predicate(fc3_uri) click to toggle source

Override this if any predicate transformation is needed

# File lib/fedora_migrate/rels_ext_datastream_mover.rb, line 38
def migrate_predicate(fc3_uri)
  fc3_uri
end
migrate_statements() click to toggle source
# File lib/fedora_migrate/rels_ext_datastream_mover.rb, line 20
def migrate_statements
  statements.each do |statement|
    triple = [target.rdf_subject, migrate_predicate(statement.predicate), migrate_object(statement.object)]
    target.ldp_source.graph << triple
    report << triple.join("--")
  end
end
missing_object?(statement) click to toggle source
# File lib/fedora_migrate/rels_ext_datastream_mover.rb, line 46
def missing_object?(statement)
  return false if ActiveFedora::Base.exists?(id_component(statement.object))
  report << "could not migrate relationship #{statement.predicate} because #{statement.object} doesn't exist in Fedora 4"
  true
end
statements() click to toggle source

All the graph statements except hasModel and those with missing objects

# File lib/fedora_migrate/rels_ext_datastream_mover.rb, line 53
def statements
  graph.statements.reject { |stmt| stmt.predicate == ActiveFedora::RDF::Fcrepo::Model.hasModel || missing_object?(stmt) }
end
update_index() click to toggle source
# File lib/fedora_migrate/rels_ext_datastream_mover.rb, line 28
def update_index
  target.reload
  target.update_index
end