protected function toJsonLD(NodeInterface $node)
 {
     $data = $node->getPropertiesValues(null, false);
     $data['@'] = $node->getPath();
     $data['a'] = $node->getPrimaryNodeType();
     return $data;
 }
示例#2
0
 /**
  * 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;
 }
示例#3
0
 /**
  * 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;
     }
 }
示例#4
0
文件: SuluNode.php 项目: sulu/sulu
 /**
  * {@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)));
     }
 }