Commit 7b6f23c5 authored by Houtan Bastani's avatar Houtan Bastani

conditional_forecast_paths: add support to write JSON output

parent 8dad9396
/*
* Copyright (C) 2003-2017 Dynare Team
* Copyright (C) 2003-2019 Dynare Team
*
* This file is part of Dynare.
*
......@@ -484,6 +484,32 @@ ConditionalForecastPathsStatement::writeOutput(ostream &output, const string &ba
}
}
void
ConditionalForecastPathsStatement::writeJsonOutput(ostream &output) const
{
output << "{\"statementName\": \"conditional_forecast_paths\""
<< ", \"paths\": [";
for (auto it = paths.begin(); it != paths.end(); it++)
{
if (it != paths.begin())
output << ", ";
output << "{\"var\": \"" << symbol_table.getName(it->first) << "\", "
<< "\"values\": [";
for (auto it1 = it->second.begin(); it1 != it->second.end(); it1++)
{
if (it1 != it->second.begin())
output << ", ";
output << "{\"period1\": " << it1->period1 << ", "
<< "\"period2\": " << it1->period2 << ", "
<< "\"value\": \"";
it1->value->writeJsonOutput(output, {}, {});
output << "\"}";
}
output << "]}";
}
output << "]}";
}
MomentCalibration::MomentCalibration(constraints_t constraints_arg,
const SymbolTable &symbol_table_arg)
: constraints{move(constraints_arg)}, symbol_table{symbol_table_arg}
......
/*
* Copyright (C) 2003-2017 Dynare Team
* Copyright (C) 2003-2019 Dynare Team
*
* This file is part of Dynare.
*
......@@ -103,6 +103,7 @@ public:
const SymbolTable &symbol_table_arg);
void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings) override;
void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const override;
void writeJsonOutput(ostream &output) const override;
};
class MomentCalibration : public Statement
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment