module Hydra::PCDM::CollectionBehavior

Implements behavior for PCDM collections.

The behavior is summarized as:

1) Hydra::PCDM::Collection can aggregate (pcdm:hasMember)  Hydra::PCDM::Collection (no infinite loop, e.g., A -> B -> C -> A)
2) Hydra::PCDM::Collection can aggregate (pcdm:hasMember)  Hydra::PCDM::Object
3) Hydra::PCDM::Collection can aggregate (ore:aggregates) Hydra::PCDM::Object  (Object related to the Collection)
4) Hydra::PCDM::Collection can NOT aggregate non-PCDM object
5) Hydra::PCDM::Collection can NOT contain (pcdm:hasFile)  Hydra::PCDM::File
6) Hydra::PCDM::Collection can have descriptive metadata
7) Hydra::PCDM::Collection can have access metadata

Public Instance Methods

collection_ids() click to toggle source

@return [Enumerable<String>]

# File lib/hydra/pcdm/models/concerns/collection_behavior.rb, line 46
def collection_ids
  members.select(&:pcdm_collection?).map(&:id)
end
collections() click to toggle source

@return [Enumerable<PCDM::CollectionBehavior>]

# File lib/hydra/pcdm/models/concerns/collection_behavior.rb, line 40
def collections
  members.select(&:pcdm_collection?)
end
ordered_collection_ids() click to toggle source

@return [Enumerable<String>]

# File lib/hydra/pcdm/models/concerns/collection_behavior.rb, line 58
def ordered_collection_ids
  ordered_collections.map(&:id)
end
ordered_collections() click to toggle source

@return [Enumerable<PCDM::CollectionBehavior>]

# File lib/hydra/pcdm/models/concerns/collection_behavior.rb, line 52
def ordered_collections
  ordered_members.to_a.select(&:pcdm_collection?)
end
pcdm_collection?() click to toggle source

@return [Boolean] whether this instance is a PCDM Collection.

# File lib/hydra/pcdm/models/concerns/collection_behavior.rb, line 70
def pcdm_collection?
  true
end
pcdm_object?() click to toggle source

@return [Boolean] whether this instance is a PCDM Object.

# File lib/hydra/pcdm/models/concerns/collection_behavior.rb, line 64
def pcdm_object?
  false
end