Documentation

Service extends RepoResource
in package
implements ServiceInterface Uses ServiceTrait

Represents a dissemination service.

Tags
author

zozlak

Table of Contents

Interfaces

ServiceInterface

Constants

UPDATE_ADD  = 'add'
UPDATE_MERGE  = 'merge'
UPDATE_OVERWRITE  = 'overwrite'

Properties

$loadParamFromMeta  : bool
$metadata  : DatasetNodeInterface
$metaSynced  : bool
$param  : array<string|int, mixed>
Parameters list
$repo  : Repo
$repoInt  : RepoInterface

Methods

__construct()  : mixed
Creates an object representing a repository resource.
delete()  : array<string|int, string>
Deletes the repository resource.
deleteAsync()  : PromiseInterface
Asynchronous version of delete()
factory()  : RepoResource
Creates a repository resource object from the PSR-7 response object returning the metadata.
getClasses()  : array<string|int, string>
Returns all RDF types (classes) of a given repository resource.
getContent()  : ResponseInterface
Returns repository resource binary content.
getContentAsync()  : ResponsePromise
synchronous version of getContent()
getDissServices()  : array<string, Service>
Returns list of dissemination services available for a resource.
getFormats()  : array<string|int, Format>
Returns all return formats provided by the dissemination service.
getGraph()  : DatasetNodeInterface
Returns resource metadata.
getIds()  : array<string|int, string>
Returns an array with all repository resource identifiers.
getLocation()  : string
Gets disseminations service's URL (before parameters subsitution)
getMatchingResources()  : Generator
Returns repository resources which can be disseminated by a given service
getMatchQuery()  : QueryPart
Returns an SQL query matching dissemination services and resources (in any direction).
getMetadata()  : DatasetNodeInterface
Returns resource metadata.
getParameters()  : array<string|int, mixed>
Get the parameters
getRepo()  : RepoInterface
Returns repository connection object associated with the given resource object.
getRequest()  : Request
Returns PSR-7 HTTP request disseminating a given resource.
getRevProxy()  : bool
Should the dissemination service request be reverse-proxied?
getUri()  : TermInterface
Returns the repository resource URL.
hasBinaryContent()  : bool
Checks if the resource has the binary content.
isA()  : bool
Naivly checks if the resource is of a given class.
loadMetadata()  : mixed
loadMetadataAsync()  : PromiseInterface|null
Asynchronous version of loadMetadata()
loadParametersFromMetadata()  : void
Tells the service it can load information on service parameters from its metadata.
merge()  : void
Merges the current resource with the given one. See the corresponding [REST endpoint description](https://app.swaggerhub.com/apis/zozlak/arche/3.0#/default/put_merge__srcResourceId___targetResourceId_)
mergeAsync()  : PromiseInterface
Asynchronous version of merge()
setGraph()  : void
Replaces resource metadata with a given RDF graph. A reference to the provided metadata is stored meaning future modifications of the $metadata object automatically affect the resource metadata.
setMetadata()  : void
Replaces resource metadata with a given RDF resource graph. A deep copy of the provided metadata is stored meaning future modifications of the $metadata object don't affect the resource metadata.
updateContent()  : void
Updates repository resource binary content with a given payload.
updateContentAsync()  : PromiseInterface
Asynchronous version of updateContent()
updateMetadata()  : void
Saves the object metadata to the repository.
updateMetadataAsync()  : PromiseInterface|null
Asynchronous version of updateMetadata()
getId()  : int
Returns an internal repository resource identifier.
getParameterClass()  : string
getParameterValues()  : array<string, mixed>
Evaluates parameter values for a given resource.
getResNmspId()  : string
Fetches a resource id in a given namespace.
getServiceClass()  : string
getUrlParameters()  : array<string|int, string>
Returns list of all parameters of a given dissemination service
loadParameters()  : void
parseMetadata()  : void
Parses metadata fetched from the repository.
withReadHeaders()  : Request

Constants

UPDATE_OVERWRITE

public mixed UPDATE_OVERWRITE = 'overwrite'

Properties

$loadParamFromMeta

private bool $loadParamFromMeta = false

$param

Parameters list

private array<string|int, mixed> $param

Methods

__construct()

Creates an object representing a repository resource.

public __construct(string $url, RepoInterface $repo) : mixed
Parameters
$url : string

URL of the resource

$repo : RepoInterface

repository connection object

delete()

Deletes the repository resource.

public delete([bool $tombstone = false ][, bool $references = false ][, string $recursiveProperty = '' ]) : array<string|int, string>

Returns an array of deleted resources' URIs.

Parameters
$tombstone : bool = false

should tombstones be removed for deleted resources?

$references : bool = false

should references to deleted resources be removed from other resources?

$recursiveProperty : string = ''

is present, deletion continues recursively to all resources pointing to the deleted one with this RDF property

Return values
array<string|int, string>

deleteAsync()

Asynchronous version of delete()

public deleteAsync([bool $tombstone = false ][, bool $references = false ][, string $recursiveProperty = '' ]) : PromiseInterface
Parameters
$tombstone : bool = false
$references : bool = false
$recursiveProperty : string = ''
Tags
see
delete()
Return values
PromiseInterface

factory()

Creates a repository resource object from the PSR-7 response object returning the metadata.

public static factory(Repo $repo, ResponseInterface $response[, string|null $uri = null ]) : RepoResource
Parameters
$repo : Repo

connection object

$response : ResponseInterface

PSR-7 repository response object

$uri : string|null = null

resource URI (if not provided, a Location HTTP header from the response will be used)

Return values
RepoResource

getClasses()

Returns all RDF types (classes) of a given repository resource.

public getClasses() : array<string|int, string>
Return values
array<string|int, string>

getContent()

Returns repository resource binary content.

public getContent() : ResponseInterface
Return values
ResponseInterface

PSR-7 response containing resource's binary content

getDissServices()

Returns list of dissemination services available for a resource.

public getDissServices() : array<string, Service>
Return values
array<string, Service>

getFormats()

Returns all return formats provided by the dissemination service.

public getFormats() : array<string|int, Format>

Technically return formats are nothing more then strings. There is no requirement forcing them to be mime types, etc.

Return values
array<string|int, Format>

getGraph()

Returns resource metadata.

public getGraph() : DatasetNodeInterface

Fetches them from the repository with the loadMetadata() if they were not fetched already.

A reference to the metadata is returned meaning adjusting the returned object automatically affects the resource metadata.

Tags
see
setGraph()
see
getMetadata()
Return values
DatasetNodeInterface

getIds()

Returns an array with all repository resource identifiers.

public getIds() : array<string|int, string>
Return values
array<string|int, string>

getLocation()

Gets disseminations service's URL (before parameters subsitution)

public getLocation() : string
Return values
string

getMatchingResources()

Returns repository resources which can be disseminated by a given service

public getMatchingResources([int $limit = null ][, int $offset = null ]) : Generator
Parameters
$limit : int = null
$offset : int = null
Return values
Generator

getMatchQuery()

Returns an SQL query matching dissemination services and resources (in any direction).

public static getMatchQuery(int $id, int $mode, Schema $schema) : QueryPart
Parameters
$id : int

resource or dissemination service id

$mode : int

one of:

  • ServiceInterface::QUERY_RES for querying resources for a given dissemination service
  • ServiceInterface::QUERY_DISSERV for querying dissemination services for a given resource
$schema : Schema

schema object providing RDF property mappings

Return values
QueryPart

getMetadata()

Returns resource metadata.

public getMetadata() : DatasetNodeInterface

Fetches them from the repository with the loadMetadata() if they were not fetched already.

A deep copy of metadata is returned meaning adjusting the returned object does not automatically affect the resource metadata. Use the setMetadata() method to write back the changes you made.

Tags
see
setMetadata()
see
setGraph()
see
getGraph()
Return values
DatasetNodeInterface

getParameters()

Get the parameters

public getParameters() : array<string|int, mixed>
Return values
array<string|int, mixed>

getRevProxy()

Should the dissemination service request be reverse-proxied?

public getRevProxy() : bool

If it's not set in the metadata, false is assumed.

Return values
bool

getUri()

Returns the repository resource URL.

public getUri() : TermInterface
Return values
TermInterface

hasBinaryContent()

Checks if the resource has the binary content.

public hasBinaryContent() : bool
Return values
bool

isA()

Naivly checks if the resource is of a given class.

public isA(string $class) : bool

Naivly means that a given rdfs:type triple must exist in the resource metadata.

Parameters
$class : string
Return values
bool

loadMetadataAsync()

Asynchronous version of loadMetadata()

public loadMetadataAsync([bool $force = false ][, string $mode = self::META_RESOURCE ][, string|null $parentProperty = null ][, array<string|int, string> $resourceProperties = [] ][, array<string|int, string> $relativesProperties = [] ]) : PromiseInterface|null
Parameters
$force : bool = false
$mode : string = self::META_RESOURCE
$parentProperty : string|null = null
$resourceProperties : array<string|int, string> = []
$relativesProperties : array<string|int, string> = []
Tags
see
loadMetadata()
Return values
PromiseInterface|null

loadParametersFromMetadata()

Tells the service it can load information on service parameters from its metadata.

public loadParametersFromMetadata() : void

Information will be loaded in a lazy way (when it's needed).

merge()

Merges the current resource with the given one. See the corresponding [REST endpoint description](https://app.swaggerhub.com/apis/zozlak/arche/3.0#/default/put_merge__srcResourceId___targetResourceId_)

public merge(string $targetResId[, string $readMode = self::META_RESOURCE ][, string $parentProperty = null ][, array<string|int, string> $resourceProperties = [] ][, array<string|int, string> $relativesProperties = [] ]) : void

If this action succeeds, resource's URI changes to the targetResource's one.

Parameters
$targetResId : string
$readMode : string = self::META_RESOURCE

scope of the metadata returned by the repository

  • see the META_* constants defined by the RepoResourceInterface
$parentProperty : string = null

RDF property to be used by the metadata read mode denoted by the $readMode parameter

$resourceProperties : array<string|int, string> = []

list of RDF properties to be includes for a resource (if the list is empty, all exsiting RDF properties are included)

$relativesProperties : array<string|int, string> = []

list of RDF properties to be includes for resources being relatives (if the list is empty, all exsiting RDF properties are included)

mergeAsync()

Asynchronous version of merge()

public mergeAsync(string $targetResId[, string $readMode = self::META_RESOURCE ][, string|null $parentProperty = null ][, array<string|int, string> $resourceProperties = [] ][, array<string|int, string> $relativesProperties = [] ]) : PromiseInterface
Parameters
$targetResId : string
$readMode : string = self::META_RESOURCE
$parentProperty : string|null = null
$resourceProperties : array<string|int, string> = []
$relativesProperties : array<string|int, string> = []
Tags
see
merge()
Return values
PromiseInterface

setGraph()

Replaces resource metadata with a given RDF graph. A reference to the provided metadata is stored meaning future modifications of the $metadata object automatically affect the resource metadata.

public setGraph(DatasetInterface $metadata) : void

New metadata are not automatically written back to the repository. Use the updateMetadata() method to write them back.

Parameters
$metadata : DatasetInterface
Tags
see
updateMetadata()
see
setMetadata()

setMetadata()

Replaces resource metadata with a given RDF resource graph. A deep copy of the provided metadata is stored meaning future modifications of the $metadata object don't affect the resource metadata.

public setMetadata(DatasetNodeInterface $metadata) : void

New metadata is not automatically written back to the repository. Use the updateMetadata() method to write them back.

Parameters
$metadata : DatasetNodeInterface
Tags
see
updateMetadata()
see
setGraph()

updateContent()

Updates repository resource binary content with a given payload.

public updateContent(BinaryPayload $content[, string $readMode = self::META_RESOURCE ][, string $parentProperty = null ][, array<string|int, string> $resourceProperties = [] ][, array<string|int, string> $relativesProperties = [] ]) : void
Parameters
$content : BinaryPayload

new content

$readMode : string = self::META_RESOURCE

scope of the metadata returned by the repository

  • see the META_* constants defined by the RepoResourceInterface
$parentProperty : string = null

RDF property to be used by the metadata read mode denoted by the $readMode parameter

$resourceProperties : array<string|int, string> = []

list of RDF properties to be includes for a resource (if the list is empty, all exsiting RDF properties are included)

$relativesProperties : array<string|int, string> = []

list of RDF properties to be includes for resources being relatives (if the list is empty, all exsiting RDF properties are included)

updateContentAsync()

Asynchronous version of updateContent()

public updateContentAsync(BinaryPayload $content[, string $readMode = self::META_RESOURCE ][, string|null $parentProperty = null ][, array<string|int, string> $resourceProperties = [] ][, array<string|int, string> $relativesProperties = [] ]) : PromiseInterface
Parameters
$content : BinaryPayload
$readMode : string = self::META_RESOURCE
$parentProperty : string|null = null
$resourceProperties : array<string|int, string> = []
$relativesProperties : array<string|int, string> = []
Tags
see
updateContent()
Return values
PromiseInterface

updateMetadata()

Saves the object metadata to the repository.

public updateMetadata([string $updateMode = self::UPDATE_MERGE ][, string $readMode = self::META_RESOURCE ][, string $parentProperty = null ][, array<string|int, string> $resourceProperties = [] ][, array<string|int, string> $relativesProperties = [] ]) : void

Local metadata are automatically updated with the metadata resulting from the update.

Parameters
$updateMode : string = self::UPDATE_MERGE

metadata update mode - one of RepoResource::UPDATE_MERGE, RepoResource::UPDATE_ADD and RepoResource::UPDATE_OVERWRITE

$readMode : string = self::META_RESOURCE

scope of the metadata returned by the repository

  • see the META_* constants defined by the RepoResourceInterface
$parentProperty : string = null

RDF property to be used by the metadata read mode denoted by the $readMode parameter

$resourceProperties : array<string|int, string> = []

list of RDF properties to be includes for a resource (if the list is empty, all exsiting RDF properties are included)

$relativesProperties : array<string|int, string> = []

list of RDF properties to be includes for resources being relatives (if the list is empty, all exsiting RDF properties are included)

updateMetadataAsync()

Asynchronous version of updateMetadata()

public updateMetadataAsync([string $updateMode = self::UPDATE_MERGE ][, string $readMode = self::META_RESOURCE ][, string|null $parentProperty = null ][, array<string|int, string> $resourceProperties = [] ][, array<string|int, string> $relativesProperties = [] ]) : PromiseInterface|null
Parameters
$updateMode : string = self::UPDATE_MERGE
$readMode : string = self::META_RESOURCE
$parentProperty : string|null = null
$resourceProperties : array<string|int, string> = []
$relativesProperties : array<string|int, string> = []
Tags
see
updateMetadata()
Return values
PromiseInterface|null

getId()

Returns an internal repository resource identifier.

protected getId() : int
Return values
int

getParameterClass()

private getParameterClass() : string
Return values
string

getParameterValues()

Evaluates parameter values for a given resource.

private getParameterValues(array<string|int, string> $param, RepoResourceInterface $res) : array<string, mixed>
Parameters
$param : array<string|int, string>

list of parameters

$res : RepoResourceInterface

repository resource to be disseminated

Tags
throws
RuntimeException
Return values
array<string, mixed>

associative array with parameter values

getServiceClass()

private abstract getServiceClass() : string
Return values
string

getUrlParameters()

Returns list of all parameters of a given dissemination service

private getUrlParameters() : array<string|int, string>
Return values
array<string|int, string>

parseMetadata()

Parses metadata fetched from the repository.

private parseMetadata(ResponseInterface $resp) : void
Parameters
$resp : ResponseInterface

response to the metadata fetch HTTP request.

withReadHeaders()

private withReadHeaders(Request $request, string $mode, string|null $parentProperty, array<string|int, string> $resourceProperties, array<string|int, string> $relativesProperties) : Request
Parameters
$request : Request
$mode : string
$parentProperty : string|null
$resourceProperties : array<string|int, string>
$relativesProperties : array<string|int, string>
Return values
Request

        
On this page

Search results