コード例 #1
0
ファイル: SemanticDataTest.php プロジェクト: whysasse/kmwiki
 public function testVisibility()
 {
     $title = Title::newFromText(__METHOD__);
     $instance = new SemanticData(DIWikiPage::newFromTitle($title));
     $instance->addDataValue(DataValueFactory::getInstance()->newPropertyValue('Has fooQuex', 'Bar'));
     $this->assertTrue($instance->hasVisibleProperties());
     $instance->addSubobject($this->newSubobject($title));
     $this->assertTrue($instance->hasVisibleSpecialProperties());
 }
コード例 #2
0
ファイル: SemanticData.php プロジェクト: whysasse/kmwiki
 /**
  * Add all data from the given SMWSemanticData.
  * Only works if the imported SMWSemanticData has the same subject as
  * this SMWSemanticData; an exception is thrown otherwise.
  *
  * @since 1.7
  *
  * @param SemanticData $semanticData object to copy from
  *
  * @throws MWException if subjects do not match
  */
 public function importDataFrom(SemanticData $semanticData)
 {
     if (!$this->mSubject->equals($semanticData->getSubject())) {
         throw new MWException("SMWSemanticData can only represent data about one subject. Importing data for another subject is not possible.");
     }
     // Shortcut when copying into empty objects that don't ask for
     // more duplicate elimination:
     if (count($this->mProperties) == 0 && $semanticData->mNoDuplicates >= $this->mNoDuplicates) {
         $this->mProperties = $semanticData->getProperties();
         $this->mPropVals = array();
         foreach ($this->mProperties as $property) {
             $this->mPropVals[$property->getKey()] = $semanticData->getPropertyValues($property);
         }
         $this->mHasVisibleProps = $semanticData->hasVisibleProperties();
         $this->mHasVisibleSpecs = $semanticData->hasVisibleSpecialProperties();
     } else {
         foreach ($semanticData->getProperties() as $property) {
             $values = $semanticData->getPropertyValues($property);
             foreach ($values as $dataItem) {
                 $this->addPropertyObjectValue($property, $dataItem);
             }
         }
     }
     foreach ($semanticData->getSubSemanticData() as $semData) {
         $this->addSubSemanticData($semData);
     }
 }