function ARC_sparql2sql_rewriter::parse_union_pattern in Taxonomy import/export via XML 6
Same name and namespace in other branches
- 5.2 arc/ARC_sparql2sql_rewriter.php \ARC_sparql2sql_rewriter::parse_union_pattern()
- 5 arc/ARC_sparql2sql_rewriter.php \ARC_sparql2sql_rewriter::parse_union_pattern()
- 6.2 arc/ARC_sparql2sql_rewriter.php \ARC_sparql2sql_rewriter::parse_union_pattern()
File
- arc/
ARC_sparql2sql_rewriter.php, line 1119
Class
Code
function parse_union_pattern($args = "") {
$result = "";
$union_count = 0;
if (is_array($args)) {
foreach ($args as $k => $v) {
${$k} = $v;
}
}
if ($entries = $pattern["entries"]) {
$this->union_count++;
$base_t_count = 100 + $this->t_count;
if (!array_key_exists("base_t_count", $this->union_t_counts)) {
$this->union_t_counts["base_t_count"] = $base_t_count;
}
$pos = 0;
$this->union_branches[$this->union_count] = array();
foreach ($entries as $cur_pattern) {
$cur_type = $cur_pattern["type"];
if (!$cur_type) {
$cur_pattern = $cur_pattern[0];
$cur_type = $cur_pattern["type"];
}
$pos++;
$union_branch_id = $this->union_count . "_" . $pos;
$this->union_t_counts[$union_branch_id] = $base_t_count;
$cur_args = array(
"ind" => $ind . " ",
"in_optional" => $in_optional,
"optional_count" => $optional_count,
"parent_optional_count" => $parent_optional_count,
"in_union" => true,
"union_count" => $this->union_count,
"union_branch_id" => $union_branch_id,
"pattern" => $cur_pattern,
);
$mthd = "parse_" . $cur_type . "_pattern";
if (method_exists($this, $mthd)) {
if ($sub_code = $this
->{$mthd}($cur_args)) {
$this->union_branches[$this->union_count][] = $sub_code;
$result .= strlen($result) ? "" : "__union_" . $this->union_count . "__";
//$result.=(strlen($result)) ? "\n".$ind."OR\n".$ind."(\n ".str_replace("\n", "\n ", $sub_code)."\n".$ind.")" : $sub_code;
}
}
}
}
return strlen($result) ? $ind . "(\n" . $result . "\n" . $ind . ")" : "";
}