View source
<?php
class ARC_rdf_store_update_handler {
var $version = "0.1.0";
function __construct(&$api) {
$this->api =& $api;
$this->config = $this->api
->get_config();
}
function ARC_rdf_store_update_handler(&$api) {
$this
->__construct($api);
}
function get_result($args = "") {
$result_type = isset($args["result_type"]) ? $args["result_type"] : "array";
$args["result_type"] = "array";
$del_result = $this->api
->delete_data($args);
$add_result = $this->api
->add_data($args);
$args["result_type"] = $result_type;
$mthd = "get_" . $args["result_type"] . "_result";
if (method_exists($this, $mthd)) {
$sub_result = $this
->{$mthd}(array(
"del_result" => $del_result,
"add_result" => $add_result,
"result_type_args" => isset($args["result_type_args"]) ? $args["result_type_args"] : array(),
));
return array(
"result" => $sub_result["result"],
"error" => $sub_result["error"],
);
}
return array(
"result" => "",
"error" => "Unsupported result type '" . $args["result_type"] . "'",
"add_result" => $add_result,
"del_result" => $del_result,
);
}
function get_array_result($args = "") {
$del_args = $args["del_result"];
$del_error = $del_args["error"];
$del_result = $del_args["result"];
$add_args = $args["add_result"];
$add_error = $add_args["error"];
$add_result = $add_args["result"];
$error = $del_error;
$error .= $add_error ? ",\n" . $add_error : "";
$result = $del_result ? $del_result : array();
$result = $add_result ? array_merge($result, $add_result) : $result;
return array(
"result" => $result,
"error" => $error,
);
}
function get_plain_result($args = "") {
$del_args = $args["del_result"];
$del_error = $del_args["error"];
$del_result = $del_args["result"];
$add_args = $args["add_result"];
$add_error = $add_args["error"];
$add_result = $add_args["result"];
$nl = "\n";
$error = $del_error;
$error .= $add_error ? ",\n" . $add_error : "";
$result = $del_result;
$result .= $add_result ? $nl . $add_result : "";
return array(
"result" => $result,
"error" => $error,
);
}
function get_xml_result($args = "") {
$del_args = $args["del_result"];
$del_error = $del_args["error"];
$del_result = $del_args["result"];
$add_args = $args["add_result"];
$add_error = $add_args["error"];
$add_result = $add_args["result"];
$nl = "\n";
$ind = " ";
$error = $del_error;
$error .= $add_error ? ",\n" . $add_error : "";
$result = "";
$code = '<?xml version="1.0" ?>';
if (!$error) {
$code .= $nl . '<result>';
if (!$del_error) {
$code .= $nl . $ind . '<del_row_count>' . $del_result["del_row_count"] . '</del_row_count>';
$code .= $nl . $ind . '<del_time>' . $del_result["del_time"] . '</del_time>';
}
if (!$add_error) {
$code .= $nl . $ind . '<add_triple_count>' . $add_result["add_triple_count"] . '</add_triple_count>';
$code .= $nl . $ind . '<add_load_time>' . $add_result["add_load_time"] . '</add_load_time>';
if ($logs = $add_result["insert_logs"]) {
$code .= $nl . $ind . '<insert_logs>';
foreach ($logs as $cur_log) {
$code .= $nl . $ind . $ind . '<log>' . htmlspecialchars($cur_log) . '</log>';
}
$code .= $nl . $ind . '</insert_logs>';
}
}
$code .= $nl . '</result>';
}
else {
$code .= $nl . '<error>' . htmlspecialchars($error) . '</error>';
}
return array(
"result" => $code,
"error" => $error,
);
}
function get_json_result($args = "") {
$del_args = $args["del_result"];
$del_error = $del_args["error"];
$del_result = $del_args["result"];
$add_args = $args["add_result"];
$add_error = $add_args["error"];
$add_result = $add_args["result"];
$nl = "\n";
$ind = " ";
$error = $del_error;
$error .= $add_error ? ",\n" . $add_error : "";
$result = "";
$jsonp = isset($args["result_type_args"]) && isset($args["result_type_args"]["jsonp"]) ? $args["result_type_args"]["jsonp"] : "";
$code = '{';
if (!$del_error) {
$code .= $nl . $ind . 'del_row_count: ' . $del_result["del_row_count"];
$code .= "," . $nl . $ind . 'del_time: ' . $del_result["del_time"];
}
if (!$add_error) {
$code .= strlen($code) ? "," : "";
$code .= $nl . $ind . 'add_triple_count: ' . $add_result["add_triple_count"];
$code .= "," . $nl . $ind . 'add_load_time: ' . $add_result["add_load_time"];
if ($logs = $add_result["insert_logs"]) {
$code .= "," . $nl . $ind . 'insert_logs: [';
$log_code = "";
foreach ($logs as $cur_log) {
$log_code .= strlen($log_code) ? "," : "";
$log_code .= $nl . $ind . $ind . '"' . $this->api
->escape_js_string($cur_log) . '"';
}
$code .= $log_code;
$code .= $nl . $ind . ']';
}
}
if ($error) {
$code .= strlen($code) ? "," : "";
$code .= $nl . $ind . 'error: "' . $this->api
->escape_js_string($error) . '"';
}
$code .= $nl . '}';
$code = $jsonp ? $jsonp . "(" . $code . ")" : $code;
return array(
"result" => $code,
"error" => $error,
);
}
}