boolean changed = false;
if (filename.endsWith("/root.gmfgen")) {
holder.value++;
// check that generateDomainModelNavigator is either true or not set
IterableElementList nav = xpath(doc, "/GenEditorGenerator/navigator");
assertEquals("Only one <navigator> expected", 1, nav.size());
for (Element e : nav) {
if (e.hasAttribute("generateDomainModelNavigator") && !"true".equals(e.getAttribute("generateDomainModelNavigator"))) {
// force change to 'true'
e.setAttribute("generateDomainModelNavigator", "true");
}
}
} else {
// check that generateDomainModelNavigator is either true or not set
IterableElementList nav = xpath(doc, "/GenEditorGenerator/navigator");
assertEquals("Only one <navigator> expected", 1, nav.size());
for (Element e : nav) {
if (!e.hasAttribute("generateDomainModelNavigator") || !"false".equals(e.getAttribute("generateDomainModelNavigator"))) {
// force change to 'false'
e.setAttribute("generateDomainModelNavigator", "false");
}
}
}
// save
if (changed) {
saveDocument(doc, filename);
}
// then recheck
if (filename.endsWith("/root.gmfgen")) {
// check that generateDomainModelNavigator is either true or not set
IterableElementList nav = xpath(doc, "/GenEditorGenerator/navigator");
assertEquals("Only one <navigator> expected", 1, nav.size());
for (Element e : nav) {
if (e.hasAttribute("generateDomainModelNavigator")) {
assertEquals(filename, "true", e.getAttribute("generateDomainModelNavigator"));
}
}
} else {
// check that generateDomainModelNavigator is either true or not set
IterableElementList nav = xpath(doc, "/GenEditorGenerator/navigator");
assertEquals("Only one <navigator> expected", 1, nav.size());
for (Element e : nav) {
assertTrue(filename, e.hasAttribute("generateDomainModelNavigator"));
assertEquals(filename, "false", e.getAttribute("generateDomainModelNavigator"));
}
}