public function testRegisterAdditionalDescriptionDeserializer() { $descriptionDeserializer = $this->getMockBuilder('\\SMW\\Deserializers\\DVDescriptionDeserializer\\DescriptionDeserializer')->disableOriginalConstructor()->getMockForAbstractClass(); $descriptionDeserializer->expects($this->once())->method('isDeserializerFor')->will($this->returnValue(true)); $dataValue = $this->getMockBuilder('\\SMWDataValue')->disableOriginalConstructor()->getMockForAbstractClass(); $instance = new DVDescriptionDeserializerRegistry(); $instance->registerDescriptionDeserializer($descriptionDeserializer); $this->assertInstanceOf('\\SMW\\Deserializers\\DVDescriptionDeserializer\\DescriptionDeserializer', $instance->getDescriptionDeserializerBy($dataValue)); }
/** * FIXME 3.0, allow NULL as value * * @see DataValueDescriptionDeserializer::deserialize * * @note Descriptions of values need to know their property to be able to * create a parsable wikitext version of a query condition again. Thus it * might be necessary to call setProperty() before using this method. * * @param string $value * * @return Description * @throws InvalidArgumentException */ public function getQueryDescription($value) { $descriptionDeserializer = DVDescriptionDeserializerRegistry::getInstance()->getDescriptionDeserializerBy($this); $description = $descriptionDeserializer->deserialize($value); foreach ($descriptionDeserializer->getErrors() as $error) { $this->addError($error); } return $description; }
/** * @since 2.4 * * @param DescriptionDeserializer $descriptionDeserializer */ public function registerDVDescriptionDeserializer(DescriptionDeserializer $descriptionDeserializer) { DVDescriptionDeserializerRegistry::getInstance()->registerDescriptionDeserializer($descriptionDeserializer); }