14#include "arcane/utils/NotImplementedException.h"
16#include "arcane/core/AbstractCaseDocumentVisitor.h"
18#include "arcane/core/CaseOptions.h"
19#include "arcane/core/CaseOptionService.h"
20#include "arcane/core/ICaseFunction.h"
34class PrintCaseDocumentVisitor
60 void applyVisitor(
const CaseOptionMultiSimple* opt)
override
64 void applyVisitor(
const CaseOptionExtended* opt)
override
68 void applyVisitor(
const CaseOptionMultiExtended* opt)
override
72 void applyVisitor(
const CaseOptionEnum* opt)
override
76 void applyVisitor(
const CaseOptionMultiEnum* opt)
override
80 void beginVisit(
const CaseOptionServiceImpl* opt)
override
85 m_current_service_name = opt->serviceName();
87 void endVisit(
const CaseOptionServiceImpl* opt)
override
92 void beginVisit(
const CaseOptionMultiServiceImpl* opt,
Integer index)
override
95 m_current_service_name = opt->serviceName(index);
98 void endVisit(
const CaseOptionMultiServiceImpl* opt,
Integer index)
override
101 ARCANE_UNUSED(index);
108 void _printOption(
const CaseOptionBase* co)
110 m_stream = std::ostringstream();
111 std::ostream& o = m_stream;
113 m_trace_mng->info() << m_stream.str();
115 void _printOption(
const CaseOptionBase* co, std::ostream& o);
119 ITraceMng* m_trace_mng;
121 std::ostringstream m_stream;
123 String m_current_service_name;
132 for (
int i = 0; i < indent.m_n; ++i)
140void PrintCaseDocumentVisitor::
144 if (!m_current_service_name.null()) {
145 service_name =
" name=\"" + m_current_service_name +
"\"";
148 IServiceInfo* service = opt->caseServiceInfo();
150 m_trace_mng->info() <<
"WARNING: service_name not handled name=\"" + service->localName() +
"\"";
152 m_current_service_name = String();
153 m_trace_mng->info() <<
Indent(m_indent) <<
"<" << opt->translatedName(m_lang) << service_name <<
">";
160void PrintCaseDocumentVisitor::
164 m_trace_mng->info() <<
Indent(m_indent) <<
"</" << opt->translatedName(m_lang) <<
">";
170void PrintCaseDocumentVisitor::
173 std::ios_base::fmtflags f = o.flags(std::ios::left);
176 o.width(40 - m_indent);
177 o << co->translatedName(m_lang);
178 co->print(m_lang, o);
179 ICaseFunction* func = co->function();
181 o <<
" (fonction: " << func->name() <<
")";
189extern "C++" std::unique_ptr<ICaseDocumentVisitor>
192 return std::make_unique<PrintCaseDocumentVisitor>(tm, lang);
Abstract visitor for a scalar data point.
Base class for a data set option.
Base class for simple options (single value).
Interface for a list of data set options.
Unicode character string.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.