protected function toJsonLD(NodeInterface $node) { $data = $node->getPropertiesValues(null, false); $data['@'] = $node->getPath(); $data['a'] = $node->getPrimaryNodeType(); return $data; }
/** * Process the given node and return eventual extra operations determined from the node. * * @param NodeInterface $node * * @return AddNodeOperation[] Additional operations that the client must execute for autocreated nodes. */ public function process(NodeInterface $node) { $this->validateNamespace($node->getName()); $nodeDef = $node->getPrimaryNodeType(); $nodeTypes = $node->getMixinNodeTypes(); array_unshift($nodeTypes, $nodeDef); $additionalOperations = array(); foreach ($nodeTypes as $nodeType) { /* @var $nodeType NodeTypeDefinitionInterface */ $additionalOperations = array_merge($additionalOperations, $this->processNodeWithType($node, $nodeType)); } return $additionalOperations; }
/** * Adds child node to this node for internal reference * * @param string $node The name of the child node * @param boolean $check whether to check state * @param string $name is used in cases where $node->getName would not return the correct name (during move operation) * * @private */ public function addChildNode(NodeInterface $node, $check, $name = null) { if ($check) { $this->checkState(); } if (is_null($name)) { $name = $node->getName(); } $nt = $this->getPrimaryNodeType(); //will throw a ConstraintViolationException if this node can't be added $nt->canAddChildNode($name, $node->getPrimaryNodeType()->getName(), true); // TODO: same name siblings $this->nodes[] = $name; if (null !== $this->originalNodesOrder) { $this->originalNodesOrder[] = $name; } }
/** * {@inheritdoc} */ public function getPrimaryNodeType() { return $this->node->getPrimaryNodeType(); }
/** * Ensure that the document is not already registered and that the node * has a UUID. * * @param object $document * @param NodeInterface $node * @param string $oid * @param string $uuid * * @throws DocumentManagerException */ private function validateDocumentRegistration($document, NodeInterface $node, $oid, $uuid) { if (null === $uuid) { throw new DocumentManagerException(sprintf('Node "%s" of type "%s" has no UUID. Only referencable nodes can be registered by the document manager', $node->getPath(), $node->getPrimaryNodeType()->getName())); } if (isset($this->nodeMap[$uuid])) { $registeredDocument = $this->nodeDocumentMap[$uuid]; throw new \RuntimeException(sprintf('Document "%s" (%s) is already registered for node "%s" (%s) when trying to register document "%s" (%s)', spl_object_hash($registeredDocument), get_class($registeredDocument), $uuid, $node->getPath(), $oid, get_class($document))); } }