Class: DorIndexing::Builders::DocumentBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/dor_indexing/builders/document_builder.rb

Overview

Builds solr document for indexing.

Constant Summary collapse

ADMIN_POLICY_INDEXER =
DorIndexing::Indexers::CompositeIndexer.new(
  DorIndexing::Indexers::AdministrativeTagIndexer,
  DorIndexing::Indexers::BasicIndexer,
  DorIndexing::Indexers::RoleMetadataIndexer,
  DorIndexing::Indexers::DefaultObjectRightsIndexer,
  DorIndexing::Indexers::IdentityMetadataIndexer,
  DorIndexing::Indexers::DescriptiveMetadataIndexer,
  DorIndexing::Indexers::IdentifiableIndexer,
  DorIndexing::Indexers::WorkflowsIndexer
)
COLLECTION_INDEXER =
DorIndexing::Indexers::CompositeIndexer.new(
  DorIndexing::Indexers::AdministrativeTagIndexer,
  DorIndexing::Indexers::BasicIndexer,
  DorIndexing::Indexers::RightsMetadataIndexer,
  DorIndexing::Indexers::IdentityMetadataIndexer,
  DorIndexing::Indexers::DescriptiveMetadataIndexer,
  DorIndexing::Indexers::IdentifiableIndexer,
  DorIndexing::Indexers::ReleasableIndexer,
  DorIndexing::Indexers::WorkflowsIndexer
)
ITEM_INDEXER =
DorIndexing::Indexers::CompositeIndexer.new(
  DorIndexing::Indexers::AdministrativeTagIndexer,
  DorIndexing::Indexers::BasicIndexer,
  DorIndexing::Indexers::RightsMetadataIndexer,
  DorIndexing::Indexers::IdentityMetadataIndexer,
  DorIndexing::Indexers::DescriptiveMetadataIndexer,
  DorIndexing::Indexers::EmbargoMetadataIndexer,
  DorIndexing::Indexers::ObjectFilesIndexer,
  DorIndexing::Indexers::IdentifiableIndexer,
  DorIndexing::Indexers::CollectionTitleIndexer,
  DorIndexing::Indexers::ReleasableIndexer,
  DorIndexing::Indexers::WorkflowsIndexer
)
INDEXERS =
{
  Cocina::Models::ObjectType.agreement => ITEM_INDEXER, # Agreement uses same indexer as item
  Cocina::Models::ObjectType.admin_policy => ADMIN_POLICY_INDEXER,
  Cocina::Models::ObjectType.collection => COLLECTION_INDEXER
}.freeze
@@parent_collections =

rubocop:disable Style/ClassVars

{}

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model:, workflow_client:, cocina_finder:, administrative_tags_finder:, release_tags_finder:) ⇒ DocumentBuilder

Returns a new instance of DocumentBuilder.



59
60
61
62
63
64
65
# File 'lib/dor_indexing/builders/document_builder.rb', line 59

def initialize(model:, workflow_client:, cocina_finder:, administrative_tags_finder:, release_tags_finder:)
  @model = model
  @workflow_client = workflow_client
  @cocina_finder = cocina_finder
  @administrative_tags_finder = administrative_tags_finder
  @release_tags_finder = release_tags_finder
end

Class Method Details

.forObject



51
52
53
# File 'lib/dor_indexing/builders/document_builder.rb', line 51

def self.for(...)
  new(...).for
end

.reset_parent_collectionsObject



55
56
57
# File 'lib/dor_indexing/builders/document_builder.rb', line 55

def self.reset_parent_collections
  @@parent_collections = {} # rubocop:disable Style/ClassVars
end

Instance Method Details

#forObject

Parameters:

  • model (Cocina::Models::DROWithMetadata, Cocina::Models::CollectionWithMetadata, Cocina::Model::AdminPolicyWithMetadata)


68
69
70
71
72
73
74
75
76
77
# File 'lib/dor_indexing/builders/document_builder.rb', line 68

def for
  indexer_for_type(model.type).new(id:,
                                   cocina: model,
                                   parent_collections:,
                                   administrative_tags:,
                                   workflow_client:,
                                   cocina_finder:,
                                   administrative_tags_finder:,
                                   release_tags_finder:)
end