Пример #1
0
 /**
  * @dataProvider valueDescriptionProvider
  */
 public function testCommonMethods($dataItem, $property, $comparator, $expected)
 {
     $instance = new ValueDescription($dataItem, $property, $comparator);
     $this->assertEquals($expected['comparator'], $instance->getComparator());
     $this->assertEquals($expected['dataItem'], $instance->getDataItem());
     $this->assertEquals($expected['property'], $instance->getProperty());
     $this->assertEquals($expected['queryString'], $instance->getQueryString());
     $this->assertEquals($expected['queryStringAsValue'], $instance->getQueryString(true));
     $this->assertEquals($expected['isSingleton'], $instance->isSingleton());
     $this->assertEquals(array(), $instance->getPrintRequests());
     $this->assertEquals(1, $instance->getSize());
     $this->assertEquals(0, $instance->getDepth());
     $this->assertEquals(0, $instance->getQueryFeatures());
 }
 /**
  * @since 2.2
  *
  * @param ValueDescription $description
  * @param string &$value
  *
  * @return string
  * @throws RuntimeException
  */
 public function mapComparator(ValueDescription $description, &$value)
 {
     $comparatorMap = array(SMW_CMP_EQ => '=', SMW_CMP_LESS => '<', SMW_CMP_GRTR => '>', SMW_CMP_LEQ => '<=', SMW_CMP_GEQ => '>=', SMW_CMP_NEQ => '!=', SMW_CMP_LIKE => ' LIKE ', SMW_CMP_NLKE => ' NOT LIKE ');
     $comparator = $description->getComparator();
     if (!isset($comparatorMap[$comparator])) {
         throw new RuntimeException("Unsupported comparator '" . $comparator . "' in value description.");
     }
     if ($comparator === SMW_CMP_LIKE || $comparator === SMW_CMP_NLKE) {
         if ($description->getDataItem() instanceof DIUri) {
             $value = str_replace(array('http://', 'https://', '%2A'), array('', '', '*'), $value);
         }
         // Escape to prepare string matching:
         $value = str_replace(array('\\', '%', '_', '*', '?'), array('\\\\', '\\%', '\\_', '%', '_'), $value);
     }
     return $comparatorMap[$comparator];
 }
 private function doMapValueDescription(ValueDescription $description, &$exact)
 {
     if ($description->getComparator() === SMW_CMP_EQ) {
         $result = $this->exporter->getDataItemExpElement($description->getDataItem());
     } else {
         // OWL cannot represent <= and >= ...
         $exact = false;
         $result = false;
     }
     return $result;
 }