\acdhOeaw\schema\disseminationMatch

Describes matching beetween a dissemination service and resources it can disseminate.

Every match is described by an RDF property and its expected value. Additionaly each match can be marked as compulsory or optional.

A resource fulfils a given set of matches if:

  • all compulsory matches are met
  • at least one of optional matches is met

E.g. for a set of matches:

  • rdf:type, https://my.res/class", required
  • ebucore:hasMimeType, "text/xml", optional
  • ebucore:hasMimeType, "application/xml", optional

will match both resources:

but won't match a resource:

Typically you shouldn't create the Match object on your own but use the \achdOeaw\schema\dissemination\Service::addMatch() method instead.

Summary

Methods
Properties
Constants
__construct()
getMetadata()
getResource()
getId()
getIds()
updateRms()
getCreated()
setMetadata()
createNewVersion()
$debug
No constants found
findResource()
createResource()
getBinaryData()
mergeMetadata()
$created
$fedora
N/A
No private methods found
$res
$id
$metadata
$metadataPreserve
$service
$property
$value
$required
N/A

Properties

$debug

$debug : boolean

Debug mode switch.

Type

boolean

$created

$created : boolean

Allows to keep track of the corresponding repository resource state: - null - unknown - true - recent call to updateRms() created the repository resource - false - repository resource already existed uppon last updateRms() call

Type

boolean

$id

$id : string

Entity id.

Type

string

$metadata

$metadata : \EasyRdf\Resource

External metadata to be merged with automatically generated one.

Type

\EasyRdf\Resource

$metadataPreserve

$metadataPreserve : array

List of automaticaly generated metadata properties to be preserved while merging with external metadata.

Type

array

$service

$service : string

A dissemination service object given rule is applied to

Type

string

$property

$property : string

RDF property name to match against

Type

string

$value

$value : string

Expected RDF property value

Type

string

$required

$required : boolean

Is match required

Type

boolean

Methods

__construct()

__construct(\acdhOeaw\fedora\Fedora  $fedora, string  $id, \acdhOeaw\schema\dissemination\Service  $service, string  $property, string  $value, boolean  $required) 

Creates a match object

Parameters

\acdhOeaw\fedora\Fedora $fedora

repository connection object

string $id

match id

\acdhOeaw\schema\dissemination\Service $service

dissemination service using this match

string $property

RDF property checked by this match

string $value

expected RDF property value

boolean $required

is this match required?

getMetadata()

getMetadata() : Resource

Returns metadata describing the match

Returns

Resource

getResource()

getResource(boolean  $create = true, boolean  $uploadBinary = true) : \acdhOeaw\fedora\FedoraResource

Returns repository resource representing given real-world entity.

If it does not exist, it can be created.

Parameters

boolean $create

should repository resource be created if it does not exist?

boolean $uploadBinary

should binary data of the real-world entity be uploaded uppon repository resource creation?

Returns

\acdhOeaw\fedora\FedoraResource

getId()

getId() : string

Returns primary id of the real-world entity stored in this object (as it was set up in the object contructor).

Please do not confuse this id with the random internal ACDH repo id.

Returns

string

getIds()

getIds() : array

Returns all known ids

Returns

array —

list of all ids

updateRms()

updateRms(boolean  $create = true, boolean  $uploadBinary = true, string  $path = '/') : \acdhOeaw\fedora\FedoraResource

Updates repository resource representing a real-world entity stored in this object.

Parameters

boolean $create

should repository resource be created if it does not exist?

boolean $uploadBinary

should binary data of the real-world entity be uploaded uppon repository resource creation?

string $path

where to create a resource (if it does not exist). If it it ends with a "/", the resource will be created as a child of a given collection). All the parents in the Fedora resource tree have to exist (you can not create "/foo/bar" if "/foo" does not exist already).

Returns

\acdhOeaw\fedora\FedoraResource

getCreated()

getCreated() : boolean

Informs about the corresponding repository resource state uppon last call to the `updateRms()` method: - null - the updateRms() was not called yet - true - repository resource was created by last call to the updateRms() - false - repository resource already existed uppoin last call to the updateRms()

Returns

boolean

setMetadata()

setMetadata(Resource  $meta, array  $preserve = array()) 

Sets an external metadata to be appended to automatically generated ones.

If a given metatada property exists both in automatically generated and provided metadata, then the final result depends on the $preserve parameter:

  • if the property is listed in the $preserve array, both automatically generated and provided values will be kept
  • if not, only values from provided metadata will be kept and automatically generated ones will be skipped

Parameters

Resource $meta

external metadata

array $preserve

list of metadata properties to be kept - see above

createNewVersion()

createNewVersion(boolean  $uploadBinary = true, string  $path = '/', boolean  $pidPass = false) : \acdhOeaw\fedora\FedoraResource

Creates a new version of the resource. The new version inherits all IDs but the UUID and epic PIDs. The old version looses all IDs but the UUID and spic PIDs. It also looses all RC::relProp() connections with collections.

The old and the new resource are linked with cfg:fedoraIsNewVersionProp and cfg:fedoraIsOldVersionProp.

Parameters

boolean $uploadBinary

should binary data of the real-world entity be uploaded uppon repository resource creation?

string $path

where to create a resource (if it does not exist). If it it ends with a "/", the resource will be created as a child of a given collection). All the parents in the Fedora resource tree have to exist (you can not create "/foo/bar" if "/foo" does not exist already).

boolean $pidPass

should PIDs (epic handles) be migrated to the new version (true) or kept by the old one (false)

Returns

\acdhOeaw\fedora\FedoraResource

old version resource

findResource()

findResource(boolean  $create = true, boolean  $uploadBinary = true, string  $path = '') : boolean

Tries to find a repository resource representing a given object.

Parameters

boolean $create

should repository resource be created if it was not found?

boolean $uploadBinary

should binary data of the real-world entity be uploaded uppon repository resource creation?

string $path

where to create a resource (if it does not exist). If it it ends with a "/", the resource will be created as a child of a given collection). All the parents in the Fedora resource tree have to exist (you can not create "/foo/bar" if "/foo" does not exist already).

Returns

boolean —

if a repository resource was found

createResource()

createResource(Resource  $meta, boolean  $uploadBinary, string  $path) 

Creates a Fedora resource

Parameters

Resource $meta
boolean $uploadBinary
string $path

getBinaryData()

getBinaryData() : \acdhOeaw\schema\value

Provides entity binary data.

Returns

\acdhOeaw\schema\value —

accepted as the \acdhOeaw\fedora\Fedora::attachData() $body parameter

mergeMetadata()

mergeMetadata(Resource  $current, Resource  $new) : Resource

Merges metadata coming from the Fedora and generated by the class.

Parameters

Resource $current

current Fedora resource metadata

Resource $new

metadata generated by the class

Returns

Resource —

final metadata