protected function fromXML(DOMElement $node) { $this->declaringNodeType = $node->getAttribute('declaringNodeType'); $this->name = $node->getAttribute('name'); $this->isAutoCreated = Helper::getBoolAttribute($node, 'isAutoCreated'); $this->isMandatory = Helper::getBoolAttribute($node, 'mandatory'); $this->isProtected = Helper::getBoolAttribute($node, 'isProtected'); $this->onParentVersion = \PHPCR\Version\OnParentVersionAction::valueFromName($node->getAttribute('onParentVersion')); }
/** * @param \DOMElement $node * @return array */ public function getItemDefinitionFromXml(DOMElement $node) { $data = array(); $data['declaringNodeType'] = $node->getAttribute('declaringNodeType'); $data['name'] = $node->getAttribute('name'); $data['isAutoCreated'] = Helper::getBoolAttribute($node, 'isAutoCreated'); $data['isMandatory'] = Helper::getBoolAttribute($node, 'mandatory'); $data['isProtected'] = Helper::getBoolAttribute($node, 'isProtected'); $data['onParentVersion'] = \PHPCR\Version\OnParentVersionAction::valueFromName($node->getAttribute('onParentVersion')); return $data; }
private function getItemDefinitionMap() { return array('name' => function ($t, $v) { $t->setName($v); }, 'auto_created' => function ($t, $v) { $t->setAutoCreated((bool) $v); }, 'mandatory' => function ($t, $v) { $t->setMandatory((bool) $v); }, 'protected' => function ($t, $v) { $t->setProtected((bool) $v); }, 'on_parent_version' => function ($t, $v) { $t->setOnParentVersion(OnParentVersionAction::valueFromName($v)); }); }
/** * @expectedException \InvalidArgumentException */ public function testValueFromNameInvalid() { OnParentVersionAction::valueFromName('something'); }
/** * The node attributes are indicated by the presence or absence of keywords. * * If 'autocreated' is present without a '?' then the item is autocreated. * If 'autocreated' is present with a '?' then the autocreated status is a variant. * If 'autocreated' is absent then the item is not autocreated. * * If 'mandatory' is present without a '?' then the item is mandatory. * If 'mandatory' is present with a '?' then the mandatory status is a variant. * If 'mandatory' is absent then the item is not mandatory. * * If 'protected' is present without a '?' then the item is protected. * If 'protected' is present with a '?' then the protected status is a variant. * If 'protected' is absent then the item is not protected. * * The OPV status of an item is indicated by the presence of that corresponding * keyword. * If no OPV keyword is present then an OPV status of COPY is assumed. * If the keyword 'OPV' followed by a '?' is present then the OPV status of the * item is a variant. * * If 'sns' is present without a '?' then the child node supports same-name siblings. * If 'sns' is present with a '?' then this attribute is a variant. * If 'sns' is absent then the child node does support same-name siblings. * * NodeAttribute ::= Autocreated | Mandatory | Protected | * Opv | Sns * Autocreated ::= ('autocreated' | 'aut' | 'a' )['?'] * Mandatory ::= ('mandatory' | 'man' | 'm') ['?'] * Protected ::= ('protected' | 'pro' | 'p') ['?'] * Opv ::= 'COPY' | 'VERSION' | 'INITIALIZE' | 'COMPUTE' | * 'IGNORE' | 'ABORT' | ('OPV' '?') * Sns ::= ('sns' | '*') ['?'] */ protected function parseChildNodeAttributes(NodeTypeTemplateInterface $parentType, NodeDefinitionTemplateInterface $childType) { while (true) { if ($this->checkTokenIn(Token::TK_IDENTIFIER, $this->PRIMARY)) { $parentType->setPrimaryItemName($childType->getName()); } elseif ($this->checkTokenIn(Token::TK_IDENTIFIER, $this->AUTOCREATED)) { $childType->setAutoCreated(true); } elseif ($this->checkTokenIn(Token::TK_IDENTIFIER, $this->MANDATORY)) { $childType->setMandatory(true); } elseif ($this->checkTokenIn(Token::TK_IDENTIFIER, $this->PROTECTED)) { $childType->setProtected(true); } elseif ($this->checkTokenIn(Token::TK_IDENTIFIER, $this->SNS)) { $childType->setSameNameSiblings(true); } elseif ($this->checkTokenIn(Token::TK_IDENTIFIER, $this->OPV)) { $token = $this->tokenQueue->get(); $childType->setOnParentVersion(OnParentVersionAction::valueFromName($token->getData())); continue; } else { return; } $this->tokenQueue->next(); } }