public String toString() {
		final StringBuilder sb = new StringBuilder();
		SortedSet<Option> union = new TreeSet<Option>(savedOptionMap.keySet());
		union.addAll(dependenciesResolvedOptionMap.keySet());
		union.addAll(commandLineOptionMap.keySet());
		union.addAll(optionFileOptionMap.keySet());
		for (Option option : union) {
			Object value = null;
			for (int i = OptionContainer.SAVEDOPTION; i <= OptionContainer.OPTIONFILE; i++) {
				if (i == OptionContainer.SAVEDOPTION) {
					value = savedOptionMap.get(option);
				} else if (i == OptionContainer.DEPENDENCIES_RESOLVED) {
					value = dependenciesResolvedOptionMap.get(option);
				} else if (i == OptionContainer.COMMANDLINE) {
					value = commandLineOptionMap.get(option);
				} else if (i == OptionContainer.OPTIONFILE) {
					value = optionFileOptionMap.get(option);
				}
				if (value != null) {
					break;
				}
			}
			sb.append(option.getGroup().getName()+"\t"+option.getName()+"\t"+value+"\n");
		}
		return sb.toString();
	}