CommunitySolidServer/docs/classes/index.dataaccessorbasedstore.html
2021-03-23 12:00:09 +00:00

993 lines
70 KiB
HTML

<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>DataAccessorBasedStore | Community Solid Server - v0.8.1</title>
<meta name="description" content="Documentation for Community Solid Server - v0.8.1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
<script async src="../assets/js/search.js" id="search-script"></script>
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../index.html" class="title">Community Solid Server - v0.8.1</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
<input type="checkbox" id="tsd-filter-externals" checked />
<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<li>
<a href="../modules.html">Community Solid Server - v0.8.1</a>
</li>
<li>
<a href="../modules/index.html">index</a>
</li>
<li>
<a href="index.dataaccessorbasedstore.html">DataAccessorBasedStore</a>
</li>
</ul>
<h1>Class DataAccessorBasedStore</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>ResourceStore which uses a DataAccessor for backend access.</p>
</div>
<p>The DataAccessor interface provides elementary store operations such as read and write.
This DataAccessorBasedStore uses those elementary store operations
to implement the more high-level ResourceStore contact, abstracting all common functionality
such that new stores can be added by implementing the more simple DataAccessor contract.
DataAccessorBasedStore thereby provides behaviours for reuse across different stores, such as:</p>
<ul>
<li>Converting container metadata to data</li>
<li>Converting slug to URI</li>
<li>Checking if addResource target is a container</li>
<li>Checking if no containment triples are written to a container</li>
<li>etc.</li>
</ul>
<p>Currently &quot;metadata&quot; is seen as something that is not directly accessible.
That means that a consumer can&#39;t write directly to the metadata of a resource, only indirectly through headers.
(Except for containers where data and metadata overlap).</p>
<p>The one thing this store does not take care of (yet?) are containment triples for containers</p>
<p>Work has been done to minimize the number of required calls to the DataAccessor,
but the main disadvantage is that sometimes multiple calls are required where a specific store might only need one.</p>
</div>
</section>
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">DataAccessorBasedStore</span>
</li>
</ul>
</section>
<section class="tsd-panel">
<h3>Implements</h3>
<ul class="tsd-hierarchy">
<li><a href="../interfaces/storage_resourcestore.resourcestore.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceStore</a></li>
</ul>
</section>
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Constructors</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-constructor tsd-parent-kind-class"><a href="index.dataaccessorbasedstore.html#constructor" class="tsd-kind-icon">constructor</a></li>
</ul>
</section>
<section class="tsd-index-section tsd-is-private-protected">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="index.dataaccessorbasedstore.html#accessor" class="tsd-kind-icon">accessor</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="index.dataaccessorbasedstore.html#auxiliarystrategy" class="tsd-kind-icon">auxiliary<wbr>Strategy</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="index.dataaccessorbasedstore.html#identifierstrategy" class="tsd-kind-icon">identifier<wbr>Strategy</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="index.dataaccessorbasedstore.html#logger" class="tsd-kind-icon">logger</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="index.dataaccessorbasedstore.html#addresource" class="tsd-kind-icon">add<wbr>Resource</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="index.dataaccessorbasedstore.html#cleanslug" class="tsd-kind-icon">clean<wbr>Slug</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="index.dataaccessorbasedstore.html#createrecursivecontainers" class="tsd-kind-icon">create<wbr>Recursive<wbr>Containers</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="index.dataaccessorbasedstore.html#createsafeuri" class="tsd-kind-icon">create<wbr>Safe<wbr>Uri</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="index.dataaccessorbasedstore.html#createuri" class="tsd-kind-icon">createURI</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="index.dataaccessorbasedstore.html#deleteresource" class="tsd-kind-icon">delete<wbr>Resource</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="index.dataaccessorbasedstore.html#getcontainedauxiliaryresources" class="tsd-kind-icon">get<wbr>Contained<wbr>Auxiliary<wbr>Resources</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="index.dataaccessorbasedstore.html#getnormalizedmetadata" class="tsd-kind-icon">get<wbr>Normalized<wbr>Metadata</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="index.dataaccessorbasedstore.html#getrepresentation" class="tsd-kind-icon">get<wbr>Representation</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="index.dataaccessorbasedstore.html#getsafenormalizedmetadata" class="tsd-kind-icon">get<wbr>Safe<wbr>Normalized<wbr>Metadata</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="index.dataaccessorbasedstore.html#handlecontainerdata" class="tsd-kind-icon">handle<wbr>Container<wbr>Data</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="index.dataaccessorbasedstore.html#hascontainertype" class="tsd-kind-icon">has<wbr>Container<wbr>Type</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="index.dataaccessorbasedstore.html#isnewcontainer" class="tsd-kind-icon">is<wbr>New<wbr>Container</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="index.dataaccessorbasedstore.html#isrootstorage" class="tsd-kind-icon">is<wbr>Root<wbr>Storage</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="index.dataaccessorbasedstore.html#modifyresource" class="tsd-kind-icon">modify<wbr>Resource</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="index.dataaccessorbasedstore.html#resourceexists" class="tsd-kind-icon">resource<wbr>Exists</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="index.dataaccessorbasedstore.html#safelydeleteauxiliaryresources" class="tsd-kind-icon">safely<wbr>Delete<wbr>Auxiliary<wbr>Resources</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="index.dataaccessorbasedstore.html#setrepresentation" class="tsd-kind-icon">set<wbr>Representation</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="index.dataaccessorbasedstore.html#validateidentifier" class="tsd-kind-icon">validate<wbr>Identifier</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="index.dataaccessorbasedstore.html#writedata" class="tsd-kind-icon">write<wbr>Data</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Constructors</h2>
<section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class">
<a name="constructor" class="tsd-anchor"></a>
<h3>constructor</h3>
<ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">new <wbr>Data<wbr>Accessor<wbr>Based<wbr>Store<span class="tsd-signature-symbol">(</span>accessor<span class="tsd-signature-symbol">: </span><a href="../interfaces/storage_accessors_dataaccessor.dataaccessor.html" class="tsd-signature-type" data-tsd-kind="Interface">DataAccessor</a>, identifierStrategy<span class="tsd-signature-symbol">: </span><a href="../interfaces/util_identifiers_identifierstrategy.identifierstrategy.html" class="tsd-signature-type" data-tsd-kind="Interface">IdentifierStrategy</a>, auxiliaryStrategy<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_auxiliary_auxiliarystrategy.auxiliarystrategy.html" class="tsd-signature-type" data-tsd-kind="Interface">AuxiliaryStrategy</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="storage_dataaccessorbasedstore.dataaccessorbasedstore.html" class="tsd-signature-type" data-tsd-kind="Class">DataAccessorBasedStore</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L61">src/storage/DataAccessorBasedStore.ts:61</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>accessor: <a href="../interfaces/storage_accessors_dataaccessor.dataaccessor.html" class="tsd-signature-type" data-tsd-kind="Interface">DataAccessor</a></h5>
</li>
<li>
<h5>identifierStrategy: <a href="../interfaces/util_identifiers_identifierstrategy.identifierstrategy.html" class="tsd-signature-type" data-tsd-kind="Interface">IdentifierStrategy</a></h5>
</li>
<li>
<h5>auxiliaryStrategy: <a href="../interfaces/ldp_auxiliary_auxiliarystrategy.auxiliarystrategy.html" class="tsd-signature-type" data-tsd-kind="Interface">AuxiliaryStrategy</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="storage_dataaccessorbasedstore.dataaccessorbasedstore.html" class="tsd-signature-type" data-tsd-kind="Class">DataAccessorBasedStore</a></h4>
</li>
</ul>
</section>
</section>
<section class="tsd-panel-group tsd-member-group tsd-is-private-protected">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a name="accessor" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> accessor</h3>
<div class="tsd-signature tsd-kind-icon">accessor<span class="tsd-signature-symbol">:</span> <a href="../interfaces/storage_accessors_dataaccessor.dataaccessor.html" class="tsd-signature-type" data-tsd-kind="Interface">DataAccessor</a></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L59">src/storage/DataAccessorBasedStore.ts:59</a></li>
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a name="auxiliarystrategy" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> auxiliary<wbr>Strategy</h3>
<div class="tsd-signature tsd-kind-icon">auxiliary<wbr>Strategy<span class="tsd-signature-symbol">:</span> <a href="../interfaces/ldp_auxiliary_auxiliarystrategy.auxiliarystrategy.html" class="tsd-signature-type" data-tsd-kind="Interface">AuxiliaryStrategy</a></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L61">src/storage/DataAccessorBasedStore.ts:61</a></li>
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a name="identifierstrategy" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> identifier<wbr>Strategy</h3>
<div class="tsd-signature tsd-kind-icon">identifier<wbr>Strategy<span class="tsd-signature-symbol">:</span> <a href="../interfaces/util_identifiers_identifierstrategy.identifierstrategy.html" class="tsd-signature-type" data-tsd-kind="Interface">IdentifierStrategy</a></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L60">src/storage/DataAccessorBasedStore.ts:60</a></li>
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a name="logger" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> logger</h3>
<div class="tsd-signature tsd-kind-icon">logger<span class="tsd-signature-symbol">:</span> <a href="logging_logger.logger.html" class="tsd-signature-type" data-tsd-kind="Class">Logger</a><span class="tsd-signature-symbol"> = ...</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L57">src/storage/DataAccessorBasedStore.ts:57</a></li>
</ul>
</aside>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="addresource" class="tsd-anchor"></a>
<h3>add<wbr>Resource</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">add<wbr>Resource<span class="tsd-signature-symbol">(</span>container<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a>, representation<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_representation.representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L115">src/storage/DataAccessorBasedStore.ts:115</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>container: <a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5>
</li>
<li>
<h5>representation: <a href="../interfaces/ldp_representation_representation.representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="cleanslug" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> clean<wbr>Slug</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">clean<wbr>Slug<span class="tsd-signature-symbol">(</span>slug<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L389">src/storage/DataAccessorBasedStore.ts:389</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Clean http Slug to be compatible with the server. Makes sure there are no unwanted characters
e.g.: cleanslug(&#39;&amp;%26&#39;) returns &#39;%26%26&#39;</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>slug: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>the slug to clean</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="createrecursivecontainers" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> create<wbr>Recursive<wbr>Containers</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">create<wbr>Recursive<wbr>Containers<span class="tsd-signature-symbol">(</span>container<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L493">src/storage/DataAccessorBasedStore.ts:493</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Create containers starting from the root until the given identifier corresponds to an existing container.
Will throw errors if the identifier of the last existing &quot;container&quot; corresponds to an existing document.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>container: <a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5>
<div class="tsd-comment tsd-typography">
<p>Identifier of the container which will need to exist.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="createsafeuri" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> create<wbr>Safe<wbr>Uri</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">create<wbr>Safe<wbr>Uri<span class="tsd-signature-symbol">(</span>container<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a>, metadata<span class="tsd-signature-symbol">: </span><a href="ldp_representation_representationmetadata.representationmetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a>, parentMetadata<span class="tsd-signature-symbol">: </span><a href="ldp_representation_representationmetadata.representationmetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L404">src/storage/DataAccessorBasedStore.ts:404</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Generate a valid URI to store a new Resource in the given container.
URI will be based on the slug header if there is one and is guaranteed to not exist yet.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>container: <a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5>
<div class="tsd-comment tsd-typography">
<p>Identifier of the target container.</p>
</div>
</li>
<li>
<h5>metadata: <a href="ldp_representation_representationmetadata.representationmetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a></h5>
<div class="tsd-comment tsd-typography">
<p>Metadata of the new resource.</p>
</div>
</li>
<li>
<h5>parentMetadata: <a href="ldp_representation_representationmetadata.representationmetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a></h5>
<div class="tsd-comment tsd-typography">
<p>Metadata of the parent container.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="createuri" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> createURI</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">createURI<span class="tsd-signature-symbol">(</span>container<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a>, isContainer<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span>, slug<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L377">src/storage/DataAccessorBasedStore.ts:377</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Generates a new URI for a resource in the given container, potentially using the given slug.</p>
</div>
<p>Solid, §5.3: &quot;Servers MUST allow creating new resources with a POST request to URI path ending <code>/</code>.
Servers MUST create a resource with URI path ending <code>/{id}</code> in container <code>/</code>.
Servers MUST create a container with URI path ending <code>/{id}/</code> in container <code>/</code> for requests
including the HTTP Link header with rel=&quot;type&quot; targeting a valid LDP container type.&quot;
<a href="https://solid.github.io/specification/protocol#writing-resources">https://solid.github.io/specification/protocol#writing-resources</a></p>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>container: <a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5>
<div class="tsd-comment tsd-typography">
<p>Parent container of the new URI.</p>
</div>
</li>
<li>
<h5>isContainer: <span class="tsd-signature-type">boolean</span></h5>
<div class="tsd-comment tsd-typography">
<p>Does the new URI represent a container?</p>
</div>
</li>
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> slug: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>Slug to use for the new URI.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="deleteresource" class="tsd-anchor"></a>
<h3>delete<wbr>Resource</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">delete<wbr>Resource<span class="tsd-signature-symbol">(</span>identifier<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L185">src/storage/DataAccessorBasedStore.ts:185</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>identifier: <a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="getcontainedauxiliaryresources" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> get<wbr>Contained<wbr>Auxiliary<wbr>Resources</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">get<wbr>Contained<wbr>Auxiliary<wbr>Resources<span class="tsd-signature-symbol">(</span>metadata<span class="tsd-signature-symbol">: </span><a href="ldp_representation_representationmetadata.representationmetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">NamedNode</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[]</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L463">src/storage/DataAccessorBasedStore.ts:463</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Extracts the identifiers of all auxiliary resources contained within the given metadata.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>metadata: <a href="ldp_representation_representationmetadata.representationmetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">NamedNode</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[]</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="getnormalizedmetadata" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> get<wbr>Normalized<wbr>Metadata</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">get<wbr>Normalized<wbr>Metadata<span class="tsd-signature-symbol">(</span>identifier<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="ldp_representation_representationmetadata.representationmetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L246">src/storage/DataAccessorBasedStore.ts:246</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the metadata matching the identifier, ignoring the presence of a trailing slash or not.</p>
</div>
<p>Solid, §3.1: &quot;If two URIs differ only in the trailing slash,
and the server has associated a resource with one of them,
then the other URI MUST NOT correspond to another resource.&quot;
<a href="https://solid.github.io/specification/protocol#uri-slash-semantics">https://solid.github.io/specification/protocol#uri-slash-semantics</a></p>
<p>First the identifier gets requested and if no result is found
the identifier with differing trailing slash is requested.</p>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>identifier: <a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5>
<div class="tsd-comment tsd-typography">
<p>Identifier that needs to be checked.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="ldp_representation_representationmetadata.representationmetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="getrepresentation" class="tsd-anchor"></a>
<h3>get<wbr>Representation</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">get<wbr>Representation<span class="tsd-signature-symbol">(</span>identifier<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ldp_representation_representation.representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L83">src/storage/DataAccessorBasedStore.ts:83</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>identifier: <a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ldp_representation_representation.representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="getsafenormalizedmetadata" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> get<wbr>Safe<wbr>Normalized<wbr>Metadata</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">get<wbr>Safe<wbr>Normalized<wbr>Metadata<span class="tsd-signature-symbol">(</span>identifier<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><a href="ldp_representation_representationmetadata.representationmetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L266">src/storage/DataAccessorBasedStore.ts:266</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the result of <code>getNormalizedMetadata</code> or undefined if a 404 error is thrown.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>identifier: <a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><a href="ldp_representation_representationmetadata.representationmetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="handlecontainerdata" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> handle<wbr>Container<wbr>Data</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">handle<wbr>Container<wbr>Data<span class="tsd-signature-symbol">(</span>representation<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_representation.representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L333">src/storage/DataAccessorBasedStore.ts:333</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Verify if the incoming data for a container is valid (RDF and no containment triples).
Adds the container data to its metadata afterwards.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>representation: <a href="../interfaces/ldp_representation_representation.representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a></h5>
<div class="tsd-comment tsd-typography">
<p>Container representation.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="hascontainertype" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> has<wbr>Container<wbr>Type</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">has<wbr>Container<wbr>Type<span class="tsd-signature-symbol">(</span>rdfTypes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Term</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L449">src/storage/DataAccessorBasedStore.ts:449</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Checks in a list of types if any of them match a Container type.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>rdfTypes: <span class="tsd-signature-type">Term</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="isnewcontainer" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> is<wbr>New<wbr>Container</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">is<wbr>New<wbr>Container<span class="tsd-signature-symbol">(</span>metadata<span class="tsd-signature-symbol">: </span><a href="ldp_representation_representationmetadata.representationmetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a>, suffix<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L438">src/storage/DataAccessorBasedStore.ts:438</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Checks if the given metadata represents a (potential) container,
both based on the metadata and the URI.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>metadata: <a href="ldp_representation_representationmetadata.representationmetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a></h5>
<div class="tsd-comment tsd-typography">
<p>Metadata of the (new) resource.</p>
</div>
</li>
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> suffix: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>Suffix of the URI. Can be the full URI, but only the last part is required.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="isrootstorage" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> is<wbr>Root<wbr>Storage</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">is<wbr>Root<wbr>Storage<span class="tsd-signature-symbol">(</span>metadata<span class="tsd-signature-symbol">: </span><a href="ldp_representation_representationmetadata.representationmetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L456">src/storage/DataAccessorBasedStore.ts:456</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Verifies if this is the metadata of a root storage container.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>metadata: <a href="ldp_representation_representationmetadata.representationmetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="modifyresource" class="tsd-anchor"></a>
<h3>modify<wbr>Resource</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">modify<wbr>Resource<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L181">src/storage/DataAccessorBasedStore.ts:181</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="resourceexists" class="tsd-anchor"></a>
<h3>resource<wbr>Exists</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">resource<wbr>Exists<span class="tsd-signature-symbol">(</span>identifier<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L70">src/storage/DataAccessorBasedStore.ts:70</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>identifier: <a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="safelydeleteauxiliaryresources" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> safely<wbr>Delete<wbr>Auxiliary<wbr>Resources</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">safely<wbr>Delete<wbr>Auxiliary<wbr>Resources<span class="tsd-signature-symbol">(</span>identifiers<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L472">src/storage/DataAccessorBasedStore.ts:472</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Deletes the given array of auxiliary identifiers.
Does not throw an error if something goes wrong.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>identifiers: <a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="setrepresentation" class="tsd-anchor"></a>
<h3>set<wbr>Representation</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">set<wbr>Representation<span class="tsd-signature-symbol">(</span>identifier<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a>, representation<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_representation.representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L150">src/storage/DataAccessorBasedStore.ts:150</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>identifier: <a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5>
</li>
<li>
<h5>representation: <a href="../interfaces/ldp_representation_representation.representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="validateidentifier" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> validate<wbr>Identifier</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">validate<wbr>Identifier<span class="tsd-signature-symbol">(</span>identifier<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L228">src/storage/DataAccessorBasedStore.ts:228</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Verify if the given identifier matches the stored base.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>identifier: <a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="writedata" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> write<wbr>Data</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">write<wbr>Data<span class="tsd-signature-symbol">(</span>identifier<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a>, representation<span class="tsd-signature-symbol">: </span><a href="../interfaces/ldp_representation_representation.representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a>, isContainer<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span>, createContainers<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/54ff231/src/storage/DataAccessorBasedStore.ts#L287">src/storage/DataAccessorBasedStore.ts:287</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Write the given resource to the DataAccessor. Metadata will be updated with necessary triples.
In case of containers <code>handleContainerData</code> will be used to verify the data.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>identifier: <a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5>
<div class="tsd-comment tsd-typography">
<p>Identifier of the resource.</p>
</div>
</li>
<li>
<h5>representation: <a href="../interfaces/ldp_representation_representation.representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a></h5>
<div class="tsd-comment tsd-typography">
<p>Corresponding Representation.</p>
</div>
</li>
<li>
<h5>isContainer: <span class="tsd-signature-type">boolean</span></h5>
<div class="tsd-comment tsd-typography">
<p>Is the incoming resource a container?</p>
</div>
</li>
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> createContainers: <span class="tsd-signature-type">boolean</span></h5>
<div class="tsd-comment tsd-typography">
<p>Should parent containers (potentially) be created?</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ldp_representation_resourceidentifier.resourceidentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4>
<p>Identifiers of resources that were possibly modified.</p>
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<nav class="tsd-navigation primary">
<ul>
<li class=" ">
<a href="../modules.html">Exports</a>
</li>
<li class="current tsd-kind-module">
<a href="../modules/index.html">index</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class tsd-parent-kind-module">
<a href="index.dataaccessorbasedstore.html" class="tsd-kind-icon">Data<wbr>Accessor<wbr>Based<wbr>Store</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="index.dataaccessorbasedstore.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a href="index.dataaccessorbasedstore.html#accessor" class="tsd-kind-icon">accessor</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a href="index.dataaccessorbasedstore.html#auxiliarystrategy" class="tsd-kind-icon">auxiliary<wbr>Strategy</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a href="index.dataaccessorbasedstore.html#identifierstrategy" class="tsd-kind-icon">identifier<wbr>Strategy</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a href="index.dataaccessorbasedstore.html#logger" class="tsd-kind-icon">logger</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="index.dataaccessorbasedstore.html#addresource" class="tsd-kind-icon">add<wbr>Resource</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="index.dataaccessorbasedstore.html#cleanslug" class="tsd-kind-icon">clean<wbr>Slug</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="index.dataaccessorbasedstore.html#createrecursivecontainers" class="tsd-kind-icon">create<wbr>Recursive<wbr>Containers</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="index.dataaccessorbasedstore.html#createsafeuri" class="tsd-kind-icon">create<wbr>Safe<wbr>Uri</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="index.dataaccessorbasedstore.html#createuri" class="tsd-kind-icon">createURI</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="index.dataaccessorbasedstore.html#deleteresource" class="tsd-kind-icon">delete<wbr>Resource</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="index.dataaccessorbasedstore.html#getcontainedauxiliaryresources" class="tsd-kind-icon">get<wbr>Contained<wbr>Auxiliary<wbr>Resources</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="index.dataaccessorbasedstore.html#getnormalizedmetadata" class="tsd-kind-icon">get<wbr>Normalized<wbr>Metadata</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="index.dataaccessorbasedstore.html#getrepresentation" class="tsd-kind-icon">get<wbr>Representation</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="index.dataaccessorbasedstore.html#getsafenormalizedmetadata" class="tsd-kind-icon">get<wbr>Safe<wbr>Normalized<wbr>Metadata</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="index.dataaccessorbasedstore.html#handlecontainerdata" class="tsd-kind-icon">handle<wbr>Container<wbr>Data</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="index.dataaccessorbasedstore.html#hascontainertype" class="tsd-kind-icon">has<wbr>Container<wbr>Type</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="index.dataaccessorbasedstore.html#isnewcontainer" class="tsd-kind-icon">is<wbr>New<wbr>Container</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="index.dataaccessorbasedstore.html#isrootstorage" class="tsd-kind-icon">is<wbr>Root<wbr>Storage</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="index.dataaccessorbasedstore.html#modifyresource" class="tsd-kind-icon">modify<wbr>Resource</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="index.dataaccessorbasedstore.html#resourceexists" class="tsd-kind-icon">resource<wbr>Exists</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="index.dataaccessorbasedstore.html#safelydeleteauxiliaryresources" class="tsd-kind-icon">safely<wbr>Delete<wbr>Auxiliary<wbr>Resources</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="index.dataaccessorbasedstore.html#setrepresentation" class="tsd-kind-icon">set<wbr>Representation</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="index.dataaccessorbasedstore.html#validateidentifier" class="tsd-kind-icon">validate<wbr>Identifier</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="index.dataaccessorbasedstore.html#writedata" class="tsd-kind-icon">write<wbr>Data</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<footer>
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
<li class="tsd-kind-function tsd-has-type-parameter"><span class="tsd-kind-icon">Function with type parameter</span></li>
<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
<li class="tsd-kind-type-alias tsd-has-type-parameter"><span class="tsd-kind-icon">Type alias with type parameter</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li>
<li class="tsd-kind-class tsd-has-type-parameter"><span class="tsd-kind-icon">Class with type parameter</span></li>
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
<li class="tsd-kind-interface tsd-has-type-parameter"><span class="tsd-kind-icon">Interface with type parameter</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li>
</ul>
</div>
</div>
</footer>
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>