OpenSimMirror/OpenSim/Framework/Configuration/ConfigurationManager.cs

66 lines
2.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using OpenSim.Framework.Console;
namespace OpenSim.Framework.Configuration
{
public class ConfigurationManager
{
List<ConfigurationMember> configurationMembers = new List<ConfigurationMember>();
public ConfigurationManager()
{
}
public void addConfigurationMember(ConfigurationMember configMember)
{
if (!configurationMembers.Contains(configMember))
{
configurationMembers.Add(configMember);
}
}
public void gatherConfiguration()
{
foreach (ConfigurationMember configMember in configurationMembers)
{
if (configMember.configurationFilename.Trim() != "")
{
XmlConfiguration xmlConfig = new XmlConfiguration(configMember.configurationFilename);
xmlConfig.LoadData();
string attribute = "";
foreach (ConfigurationOption configOption in configMember.configurationOptions)
{
attribute = xmlConfig.GetAttribute(configOption.configurationKey);
if (attribute == "")
{
if (configMember.configurationDescription.Trim() != "")
{
attribute = MainLog.Instance.CmdPrompt(configMember.configurationDescription + ": " + configOption.configurationQuestion, configOption.configurationDefault);
}
else
{
attribute = MainLog.Instance.CmdPrompt(configMember.configurationDescription + ": " + configOption.configurationQuestion, configOption.configurationDefault);
}
xmlConfig.SetAttribute(configOption.configurationKey, attribute);
}
configMember.handleConfigurationItem(configOption.configurationKey, attribute);
}
xmlConfig.Commit();
xmlConfig.Close();
}
else
{
//Error out, no filename specified
}
}
}
public void clearConfigurationMembers()
{
configurationMembers.Clear();
}
}
}