예제 #1
0
        private ConfigItem <string[]> getValues(string nodeName, bool hasParent)
        {
            var item   = new ConfigItem <string[]>(new string[] {});
            var values = new List <string>();
            var nodes  = _xml.SelectNodes(nodeName);

            if (nodes.Count == 0)
            {
                return(item);
            }
            foreach (XmlNode node in nodes)
            {
                values.Add(node.InnerText);
            }
            item.SetValue(values.ToArray());
            var mainNode = nodeName;

            if (hasParent)
            {
                mainNode = getParentNode(nodeName);
            }
            if (shouldMerge(mainNode))
            {
                item.SetShouldMerge();
            }
            if (shouldExcludeFromConfig(mainNode))
            {
                item.Exclude();
            }
            return(item);
        }
예제 #2
0
        private ConfigItem <string> getValueItem(string nodeName, string defaultValue)
        {
            var item = new ConfigItem <string>(defaultValue);
            var str  = getValue(nodeName, null);

            if (str == null)
            {
                return(item);
            }
            item.SetValue(str);
            if (shouldExcludeFromConfig(nodeName))
            {
                item.Exclude();
            }
            return(item);
        }
예제 #3
0
        private ConfigItem <int> getIntItem(string path, int defaultValue)
        {
            var item = new ConfigItem <int>(defaultValue);
            var val  = getInt(path, null);

            if (val == null)
            {
                return(item);
            }
            item.SetValue((int)val);
            if (shouldExcludeFromConfig(path))
            {
                item.Exclude();
            }
            return(item);
        }
예제 #4
0
        private ConfigItem <bool> getBoolItem(string path, bool defaultValue)
        {
            var item = new ConfigItem <bool>(defaultValue);
            var val  = getBool(path, null);

            if (val == null)
            {
                return(item);
            }
            item.SetValue((bool)val);
            if (shouldExcludeFromConfig(path))
            {
                item.Exclude();
            }
            return(item);
        }
예제 #5
0
        private ConfigItem <long> getLongItem(string path, long defaultValue)
        {
            var item = new ConfigItem <long>(defaultValue);
            var val  = getLong(path, null);

            if (val == null)
            {
                return(item);
            }
            item.SetValue((long)val);
            if (shouldExcludeFromConfig(path))
            {
                item.Exclude();
            }
            return(item);
        }
예제 #6
0
        private ConfigItem <CodeEditor> getCodeEditor()
        {
            var item       = new ConfigItem <CodeEditor>(new CodeEditor("", ""));
            var executable = getValue("configuration/CodeEditor/Executable", null);

            if (executable == null)
            {
                return(item);
            }
            var arguments = getValue("configuration/CodeEditor/Arguments", "");

            if (shouldExcludeFromConfig("configuration/CodeEditor"))
            {
                item.Exclude();
            }
            return(item.SetValue(new CodeEditor(executable, arguments)));
        }
예제 #7
0
        private ConfigItem <KeyValuePair <string, string>[]> getVersionedSetting(string xpath)
        {
            var item  = new ConfigItem <KeyValuePair <string, string>[]>(new KeyValuePair <string, string>[] {});
            var nodes = _xml.SelectNodes(xpath);

            if (nodes.Count == 0)
            {
                return(item);
            }
            item.SetValue(readVersionedNodes(nodes));
            if (shouldMerge(xpath))
            {
                item.SetShouldMerge();
            }
            if (shouldExcludeFromConfig(xpath))
            {
                item.Exclude();
            }
            return(item);
        }