private Settings unmarshallOptions(Node optionNode, Settings settings) { Node n; NodeList nodes = optionNode.getChildNodes(); for (int i = 0; i < nodes.getLength(); i++) { n = nodes.item(i); if (n.getNodeType() == ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("obsoletewarning")) { settings.setObsoleteWarning(Boolean.parseBoolean(unmarshallAttribute(n, "value", "true"))); } else if (n.getNodeType() == ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("debug")) { settings.setDebug(Boolean.parseBoolean(unmarshallAttribute(n, "value", "true"))); } else if (n.getNodeType() == ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("calcconflictwarning")) { settings.setCalcConflictWarning( Boolean.parseBoolean(unmarshallAttribute(n, "value", "true"))); } else if (n.getNodeType() == ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("userlevel")) { settings.setUserLevel(unmarshallAttribute(n, "value", 1)); } else if (n.getNodeType() == ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("tableclickcount")) { settings.setTableClickCount(unmarshallAttribute(n, "value", 2)); } else if (n.getNodeType() == ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("version")) { settings.setRecentVersion(unmarshallAttribute(n, "value", "")); } else if (n.getNodeType() == ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("savedebugtables")) { settings.setSaveDebugTables(Boolean.parseBoolean(unmarshallAttribute(n, "value", "false"))); } else if (n.getNodeType() == ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("displayhightables")) { settings.setDisplayHighTables( Boolean.parseBoolean(unmarshallAttribute(n, "value", "false"))); } else if (n.getNodeType() == ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("valuelimitwarning")) { settings.setValueLimitWarning( Boolean.parseBoolean(unmarshallAttribute(n, "value", "true"))); } } return settings; }