Пример #1
0
        public IXMLTransformRule createRule(TransformRuleTypes t, XmlNode node)
        {
            XmlNode NextValue = node.SelectSingleNode("NextValue");

            if (NextValue == null)
            {
                Console.Error.WriteLine("NextValue node missing from SequenceString rule. Skipping.");
                return(null);
            }
            XmlNode path = node.SelectSingleNode("Path");

            if (path == null)
            {
                Console.Error.WriteLine("Path node missing from SequenceString rule. Skipping.");
                return(null);
            }
            XmlNode Values = node.SelectSingleNode("Values");

            if (Values == null)
            {
                Console.Error.WriteLine("Values node missing from SequenceString rule. Skipping.");
                return(null);
            }
            if (Int32.TryParse(NextValue.InnerText, out int next_int))
            {
                return(new SequenceTransformRule(new List <string>(Values.InnerText.Split("<~>")), path.InnerText, next_int));
            }
            else
            {
                return(null);
            }
        }
        public IXMLTransformRule createRule(TransformRuleTypes t, XmlNode node)
        {
            switch (t)
            {
            case TransformRuleTypes.Fixed:
                return(new FixedTransformRuleFactory().createRule(t, node));

            case TransformRuleTypes.Random:
                return(new RandomTransformRuleFactory().createRule(t, node));

            case TransformRuleTypes.RandomInteger:
                return(new RandomIntegerTransformRuleFactory().createRule(t, node));

            case TransformRuleTypes.RepeatNode:
                return(new RepeatNodeTransformRuleFactory().createRule(t, node));

            case TransformRuleTypes.IncrementString:
                return(new IncrementStringTransformRuleFactory().createRule(t, node));

            case TransformRuleTypes.SequenceString:
                return(new SequenceStringTransformRuleFactory().createRule(t, node));

            case TransformRuleTypes.RemoveNode:
                return(new RemoveNodeTransformRuleFactory().createRule(t, node));

            default:
                throw new Exception("Not valid Transform rule!");
            }
        }
Пример #3
0
        public IXMLTransformRule createRule(TransformRuleTypes t, XmlNode node)
        {
            XmlNode path = node.SelectSingleNode("Path");

            if (path == null)
            {
                Console.Error.WriteLine("No path specified");
                return(null);
            }
            return(new RemoveNodeTransformRule(path.InnerText));
        }
        public IXMLTransformRule createRule(TransformRuleTypes t, XmlNode node)
        {
            XmlNode fixedString = node.SelectSingleNode("FixedString");
            XmlNode path        = node.SelectSingleNode("Path");

            if (fixedString == null)
            {
                Console.Error.WriteLine($"No fixed string in Fixed rule for path");
                return(null);
            }
            if (path == null)
            {
                Console.Error.WriteLine($"No path specified");
                return(null);
            }
            return(new FixedStringTransformRule(fixedString.InnerText, path.InnerText));
        }
Пример #5
0
        public IXMLTransformRule createRule(TransformRuleTypes t, XmlNode node)
        {
            XmlNode CurrentValue = node.SelectSingleNode("CurrentValue");

            if (CurrentValue == null || CurrentValue.InnerText == string.Empty)
            {
                Console.Error.WriteLine("CurrentValue tag is missing in Increment Rule. Skipping.");
                return(null);
            }
            XmlNode path = node.SelectSingleNode("Path");

            if (path == null || path.InnerText == string.Empty)
            {
                Console.Error.WriteLine("Path is missing from Increment Rule. Skipping.");
                return(null);
            }
            return(new IncrementStringTransformRule(CurrentValue.InnerText, path.InnerText));
        }
        public IXMLTransformRule createRule(TransformRuleTypes t, XmlNode node)
        {
            XmlNode min = node.SelectSingleNode("Min");

            if (min == null)
            {
                Console.Error.WriteLine("Min tag missing in Random rule. Skipping");
                return(null);
            }
            XmlNode max = node.SelectSingleNode("Max");

            if (max == null)
            {
                Console.Error.WriteLine("Max tag missing in Random rule. Skipping");
                return(null);
            }
            XmlNode path = node.SelectSingleNode("Path");

            if (path == null)
            {
                Console.Error.WriteLine($"No path specified");
                return(null);
            }
            XmlNode div = node.SelectSingleNode("Divisor");

            if (div == null)
            {
                Console.Error.WriteLine("Divisor is missing. Skipping.");
                return(null);
            }
            if (Int32.TryParse(min.InnerText, out int min_int) &&
                Int32.TryParse(max.InnerText, out int max_int) &&
                Int32.TryParse(div.InnerText, out int div_int))
            {
                return(new RandomIntegerTransformRule(min_int, max_int, path.InnerText, div_int));
            }
            else
            {
                return(null);
            }
        }
Пример #7
0
        public IXMLTransformRule createRule(TransformRuleTypes t, XmlNode node)
        {
            XmlNode len = node.SelectSingleNode("Length");

            if (len == null)
            {
                Console.Error.WriteLine("Length tag missing in Random rule. Skipping");
                return(null);
            }
            XmlNode allowedChars = node.SelectSingleNode("AllowedChars");

            if (allowedChars == null)
            {
                Console.Error.WriteLine("AllowedChars tag missing in Random rule. Skipping");
                return(null);
            }
            XmlNode prefix = node.SelectSingleNode("Prefix");

            if (prefix == null)
            {
                Console.Error.WriteLine("Prefix tag missing in Random rule. Skipping");
                return(null);
            }

            XmlNode path = node.SelectSingleNode("Path");

            if (path == null)
            {
                Console.Error.WriteLine($"No path specified");
                return(null);
            }
            if (Int32.TryParse(len.InnerText, out int length))
            {
                return(new RandomStringTransformRule(length, path.InnerText, allowedChars.InnerText, prefix.InnerText));
            }
            else
            {
                return(null);
            }
        }
Пример #8
0
        public IXMLTransformRule createRule(TransformRuleTypes t, XmlNode node)
        {
            XmlNode path  = node.SelectSingleNode("Path");
            XmlNode times = node.SelectSingleNode("Times");

            if (path == null)
            {
                Console.Error.WriteLine($"No path specified");
                return(null);
            }
            if (times == null)
            {
                Console.Error.WriteLine($"No Times tag specified.");
            }
            if (Int32.TryParse(times.InnerText, out int t_repeat))
            {
                return(new RepeatNodeTransformRule(t_repeat, path.InnerText));
            }
            else
            {
                return(null);
            }
        }