You are here

function ARC_sparql2sql_rewriter::parse_pattern in Taxonomy import/export via XML 6.2

Same name and namespace in other branches
  1. 5.2 arc/ARC_sparql2sql_rewriter.php \ARC_sparql2sql_rewriter::parse_pattern()
  2. 5 arc/ARC_sparql2sql_rewriter.php \ARC_sparql2sql_rewriter::parse_pattern()
  3. 6 arc/ARC_sparql2sql_rewriter.php \ARC_sparql2sql_rewriter::parse_pattern()
4 calls to ARC_sparql2sql_rewriter::parse_pattern()
ARC_sparql2sql_rewriter::parse_graph_pattern in arc/ARC_sparql2sql_rewriter.php
ARC_sparql2sql_rewriter::parse_group_pattern in arc/ARC_sparql2sql_rewriter.php
ARC_sparql2sql_rewriter::parse_optional_pattern in arc/ARC_sparql2sql_rewriter.php
ARC_sparql2sql_rewriter::parse_patterns in arc/ARC_sparql2sql_rewriter.php

File

arc/ARC_sparql2sql_rewriter.php, line 922

Class

ARC_sparql2sql_rewriter

Code

function parse_pattern($args = "") {
  $r = "";
  if (is_array($args) && isset($args["pattern"]) && ($pattern = $args["pattern"])) {
    $nl = "\n";
    $ind = $args["ind"];
    $ni = $nl . $ind;
    $cur_type = isset($pattern["type"]) ? $pattern["type"] : "";
    if ($cur_type) {
      $mthd = "parse_" . $cur_type . "_pattern";
      if (method_exists($this, $mthd)) {
        $r .= $this
          ->{$mthd}($args);
      }
    }
    elseif (count($pattern)) {

      /* has sub-patterns */
      foreach ($pattern as $sub_pattern) {
        $args["pattern"] = $sub_pattern;
        $sub_r = $this
          ->parse_pattern($args);
        if (trim($sub_r)) {
          $r .= strlen($r) ? $ni . "AND" . $ni . "(" . $nl . " " . str_replace("\n", "\n ", $sub_r) . $ni . ")" : $sub_r;
        }
      }
    }
  }
  return $r;
}