separate graphml format & format string
This commit is contained in:
@@ -1256,7 +1256,8 @@ std::ostream& StateMachine::dump(std::ostream& os) const
|
|||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
Document::Document():
|
Document::Document():
|
||||||
ElementCollection(NULL, elementRoot, "", ""),
|
ElementCollection(NULL, elementRoot, "", ""),
|
||||||
format(DEFAULT_GRAPHML_FORMAT),
|
format_str(DEFAULT_GRAPHML_FORMAT),
|
||||||
|
format(formatCyberiada10),
|
||||||
metainfo_element(NULL)
|
metainfo_element(NULL)
|
||||||
{
|
{
|
||||||
reset();
|
reset();
|
||||||
@@ -1268,7 +1269,8 @@ void Document::reset()
|
|||||||
metainfo.standard_version = STANDARD_VERSION;
|
metainfo.standard_version = STANDARD_VERSION;
|
||||||
metainfo.transition_order_flag = false;
|
metainfo.transition_order_flag = false;
|
||||||
metainfo.event_propagation_flag = false;
|
metainfo.event_propagation_flag = false;
|
||||||
format = DEFAULT_GRAPHML_FORMAT;
|
format = formatCyberiada10;
|
||||||
|
format_str = DEFAULT_GRAPHML_FORMAT;
|
||||||
metainfo_element = NULL;
|
metainfo_element = NULL;
|
||||||
clear();
|
clear();
|
||||||
}
|
}
|
||||||
@@ -1949,7 +1951,12 @@ void Document::load(const String& path, DocumentFormat f)
|
|||||||
try {
|
try {
|
||||||
|
|
||||||
CYB_ASSERT(doc.format);
|
CYB_ASSERT(doc.format);
|
||||||
format = doc.format;
|
format_str = doc.format;
|
||||||
|
if (format_str == DEFAULT_GRAPHML_FORMAT) {
|
||||||
|
format = formatCyberiada10;
|
||||||
|
} else {
|
||||||
|
format = formatLegacyYED;
|
||||||
|
}
|
||||||
|
|
||||||
CYB_ASSERT(doc.meta_info);
|
CYB_ASSERT(doc.meta_info);
|
||||||
CYB_ASSERT(doc.meta_info->standard_version);
|
CYB_ASSERT(doc.meta_info->standard_version);
|
||||||
@@ -2211,6 +2218,16 @@ void Document::save(const String& path, DocumentFormat f) const
|
|||||||
cyberiada_cleanup_sm_document(&doc);
|
cyberiada_cleanup_sm_document(&doc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String Document::get_format_str() const
|
||||||
|
{
|
||||||
|
if (format == formatCyberiada10) {
|
||||||
|
return DEFAULT_GRAPHML_FORMAT;
|
||||||
|
} else {
|
||||||
|
CYB_ASSERT(format == formatLegacyYED);
|
||||||
|
return format_str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
std::list<const StateMachine*> Document::get_state_machines() const
|
std::list<const StateMachine*> Document::get_state_machines() const
|
||||||
{
|
{
|
||||||
std::list<const StateMachine*> result;
|
std::list<const StateMachine*> result;
|
||||||
@@ -2251,7 +2268,7 @@ const StateMachine* Document::get_parent_sm(const Element* element) const
|
|||||||
std::ostream& Document::dump(std::ostream& os) const
|
std::ostream& Document::dump(std::ostream& os) const
|
||||||
{
|
{
|
||||||
Element::dump(os);
|
Element::dump(os);
|
||||||
os << ", format: '" << format << "', meta: {";
|
os << ", format: '" << get_format_str() << "', meta: {";
|
||||||
std::list<String> params;
|
std::list<String> params;
|
||||||
if (!metainfo.standard_version.empty()) {
|
if (!metainfo.standard_version.empty()) {
|
||||||
params.push_back("standard version: '" + metainfo.standard_version + "'");
|
params.push_back("standard version: '" + metainfo.standard_version + "'");
|
||||||
|
|||||||
@@ -630,7 +630,9 @@ namespace Cyberiada {
|
|||||||
virtual void set_name(const Name& name);
|
virtual void set_name(const Name& name);
|
||||||
const DocumentMetainformation& meta() const { return metainfo; }
|
const DocumentMetainformation& meta() const { return metainfo; }
|
||||||
DocumentMetainformation& meta() { return metainfo; }
|
DocumentMetainformation& meta() { return metainfo; }
|
||||||
|
DocumentFormat get_format() const { return format; }
|
||||||
|
String get_format_str() const;
|
||||||
|
|
||||||
std::list<const StateMachine*> get_state_machines() const;
|
std::list<const StateMachine*> get_state_machines() const;
|
||||||
std::list<StateMachine*> get_state_machines();
|
std::list<StateMachine*> get_state_machines();
|
||||||
const StateMachine* get_parent_sm(const Element* element) const;
|
const StateMachine* get_parent_sm(const Element* element) const;
|
||||||
@@ -657,8 +659,9 @@ namespace Cyberiada {
|
|||||||
void check_transition_target(const Element* element) const;
|
void check_transition_target(const Element* element) const;
|
||||||
void check_comment_subject_element(const Element* element) const;
|
void check_comment_subject_element(const Element* element) const;
|
||||||
void check_transition_action(const Action& action) const;
|
void check_transition_action(const Action& action) const;
|
||||||
|
|
||||||
String format;
|
String format_str;
|
||||||
|
DocumentFormat format;
|
||||||
DocumentMetainformation metainfo;
|
DocumentMetainformation metainfo;
|
||||||
Comment* metainfo_element;
|
Comment* metainfo_element;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user