Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
118 lines (106 sloc) 3.4 KB
<?php
/*
* (c) Markus Lanthaler <mail@markus-lanthaler.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace ML\JsonLD;
/**
* JSON-LD graph interface
*
* @author Markus Lanthaler <mail@markus-lanthaler.com>
*/
interface GraphInterface
{
/**
* Creates a new node which is linked to this document
*
* If a blank node identifier or an invalid ID is passed, the ID will be
* ignored and a new blank node identifier unique to the document is
* created for the node.
*
* If there exists already a node with the passed ID in the document,
* that node will be returned instead of creating a new one.
*
* @param null|string $id The ID of the node.
* @param bool $preserveBnodeId If set to false, blank nodes are
* relabeled to avoid collisions;
* otherwise the blank node identifier
* is preserved.
*
* @return Node The newly created node.
*/
public function createNode($id = null, $preserveBnodeId = false);
/**
* Removes a node from the document
*
* This will also eliminate all references to the node within the
* document.
*
* @param NodeInterface $node The node to remove from the document.
*
* @return self
*/
public function removeNode(NodeInterface $node);
/**
* Get all nodes
*
* @return Node[] Returns an array containing all nodes defined in the
* document.
*/
public function getNodes();
/**
* Get a node by ID
*
* @param string $id The ID of the node to retrieve.
*
* @return Node|null Returns the node if found; null otherwise.
*/
public function getNode($id);
/**
* Get nodes by type
*
* @param string|Node $type The type
*
* @return Node[] Returns an array containing all nodes of the specified
* type in the document.
*/
public function getNodesByType($type);
/**
* Check whether the document already contains a node with the
* specified ID
*
* @param string|Node $id The node ID to check. Blank node identifiers
* will always return false except a node instance
* which is part of the document will be passed
* instead of a string.
*
* @return bool Returns true if the document contains a node with the
* specified ID; false otherwise.
*/
public function containsNode($id);
/**
* Get the document the node belongs to
*
* @return null|DocumentInterface Returns the document the node belongs
* to or null if the node doesn't belong
* to any document.
*/
public function getDocument();
/**
* Removes the graph from the document
*
* @return self
*/
public function removeFromDocument();
/**
* Merges the specified graph into the current graph
*
* @param GraphInterface $graph The graph that should be merged into the
* current graph.
*
* @return self
*/
public function merge(GraphInterface $graph);
}