Sha256: 6db33a4934c7e0051b5b2ab0f76fc5295ba32ecf84cd946af7f22405c6c4e8bd

Contents?: true

Size: 1.03 KB

Versions: 1

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true
module Valkyrie::Persistence::Solr
  # Provides access to generic methods for converting to/from
  # {Valkyrie::Resource} and hashes for persistence into Solr.
  class ResourceFactory
    require 'valkyrie/persistence/solr/orm_converter'
    require 'valkyrie/persistence/solr/model_converter'
    attr_reader :resource_indexer, :adapter
    delegate :id, to: :adapter, prefix: true

    def initialize(resource_indexer:, adapter:)
      @resource_indexer = resource_indexer
      @adapter = adapter
    end

    # @param object [Hash] The solr document in a hash to convert to a
    #   resource.
    # @return [Valkyrie::Resource]
    def to_resource(object:)
      ORMConverter.new(object, resource_factory: self).convert!
    end

    # @param resource [Valkyrie::Resource] The resource to convert to a solr hash.
    # @return [Hash] The solr document represented as a hash.
    def from_resource(resource:)
      Valkyrie::Persistence::Solr::ModelConverter.new(resource, resource_factory: self).convert!
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
valkyrie-1.2.0.rc1 lib/valkyrie/persistence/solr/resource_factory.rb