コード例 #1
0
ファイル: JsonTable.cpp プロジェクト: HanumathRao/hyrise
std::shared_ptr<PlanOperation> JsonTable::parse(const Json::Value& data) {
  auto result = std::make_shared<JsonTable>();

  result->_names = functional::collect(data["names"], [](const Json::Value& v) { return v.asString(); });
  result->_types = functional::collect(data["types"], [](const Json::Value& v) { return v.asString(); });
  result->_groups = functional::collect(data["groups"], [](const Json::Value& v) { return v.asUInt(); });

  if (data.isMember("data")) {
    result->_data = functional::collect(data["data"], [](const Json::Value& v) {
      return functional::collect(v, [](const Json::Value& c) { return c.asString(); });
    });
  }

  if (data.isMember("useStore")) {
    result->setUseStore(data["useStore"].asBool());
    result->setMergeStore(data["mergeStore"].asBool());
  }

  // Check if we have serial field definitions
  if (data.isMember("serials")) {
    result->_serialFields = functional::collect(data["serials"], [](const Json::Value& v) { return v.asString(); });
  }

  return result;
}
コード例 #2
0
ファイル: JsonTable.cpp プロジェクト: InsZVA/HyriseVisualizer
std::shared_ptr<_PlanOperation> JsonTable::parse(Json::Value &data) {
	auto result = std::make_shared<JsonTable>();

	result->_names = collect(data["names"], [](const Json::Value& v) { return v.asString();});
	result->_types = collect(data["types"], [](const Json::Value& v) { return v.asString();});
	result->_groups = collect(data["groups"], [](const Json::Value& v) { return v.asUInt();});

	if (data.isMember("data")) {
		result->_data = collect(data["data"], [](Json::Value& v){
			return collect(v, [](Json::Value& c){ return c.asString(); });
		});
	}

	if (data.isMember("useStore")) {
		result->setUseStore(data["useStore"].asBool());
	}

	return result;
}