Пример #1
0
 /**
  * returns the status for a triple inside the unit of work.
  *
  * @param \Conjecto\Nemrod\Resource $resource
  * @param $property
  * @param $value
  *
  * @return string
  */
 private function tripleStatus($resource, $property, $value)
 {
     if (is_string($resource)) {
         $resource = $this->retrieveResource($resource);
     }
     $snapshotValues = $this->initialSnapshots->all($resource, $property);
     $resourceValues = $resource->all($resource, $property);
     $valueInSnapShot = false;
     foreach ($snapshotValues as $val) {
         $snapValue = $val instanceof Literal ? $val->getValue() : $val['value'];
         if ($value instanceof Literal || $snapValue === $value['value']) {
             $valueInSnapShot = true;
         }
     }
     $valueInResource = false;
     foreach ($resourceValues as $val) {
         if ($val['value'] === $value['value']) {
             $valueInResource = true;
         }
     }
     if ($valueInSnapShot) {
         if ($valueInResource) {
             return self::STATUS_TRIPLE_UNCHANGED;
         } else {
             return self::STATUS_TRIPLE_REMOVED;
         }
     } else {
         if ($valueInResource) {
             return self::STATUS_TRIPLE_ADDED;
         } else {
             return self::STATUS_TRIPLE_UNKNOWN;
         }
     }
 }