static void ReadSymbolMapping(WrapperProject project, XmlReader reader)
        {
            string mappingType = reader.Name;
            string mappingName = reader.GetAttribute("Name");
            var replacements = new Dictionary<string, string>();
            string scriptBody = null;

            if (reader.IsEmptyElement)
            {
                return;
            }

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.Name)
                    {
                        case "Replacement":
                            {
                                string replace = reader.GetAttribute("Replace");
                                string with = reader.GetAttribute("With");
                                replacements.Add(replace, with);
                            }
                            break;
                        case "ScriptBody":
                            {
                                scriptBody = reader.ReadElementContentAsString();
                            }
                            break;
                    }
                }
                else if (reader.NodeType == XmlNodeType.EndElement)
                {
                    break;
                }
            }

            ISymbolMapping mapping;

            switch (mappingType)
            {
                case "ScriptedMapping":
                    {
                        mapping = new ScriptedMapping(mappingName, scriptBody);
                    }
                    break;
                case "ReplaceMapping":
                    {
                        mapping = new ReplaceMapping(mappingName);
                    }
                    break;
                default:
                    Console.WriteLine("Unknown mapping!");
                    return;
            }

            var replaceMapping = mapping as ReplaceMapping;
            if (replaceMapping != null)
            {
                foreach (var replacement in replacements)
                {
                    replaceMapping.Replacements.Add(replacement.Key, replacement.Value);
                }
            }

            switch (mapping.Name)
            {
                case "NameMapping":
                    project.ClassNameMapping = mapping;
                    project.HeaderNameMapping = mapping;
                    break;
                case "MethodNameMapping":
                    project.MethodNameMapping = mapping;
                    break;
                case "ParameterNameMapping":
                    project.ParameterNameMapping = mapping;
                    break;
            }
        }
Beispiel #2
0
        static void ReadSymbolMapping(WrapperProject project, XmlReader reader)
        {
            string mappingType  = reader.Name;
            string mappingName  = reader.GetAttribute("Name");
            var    replacements = new Dictionary <string, string>();
            string scriptBody   = null;

            if (reader.IsEmptyElement)
            {
                return;
            }

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.Name)
                    {
                    case "Replacement":
                    {
                        string replace = reader.GetAttribute("Replace");
                        string with    = reader.GetAttribute("With");
                        replacements.Add(replace, with);
                    }
                    break;

                    case "ScriptBody":
                    {
                        scriptBody = reader.ReadElementContentAsString();
                    }
                    break;
                    }
                }
                else if (reader.NodeType == XmlNodeType.EndElement)
                {
                    break;
                }
            }

            ISymbolMapping mapping;

            switch (mappingType)
            {
            case "ScriptedMapping":
            {
                mapping = new ScriptedMapping(mappingName, scriptBody);
            }
            break;

            case "ReplaceMapping":
            {
                mapping = new ReplaceMapping(mappingName);
            }
            break;

            default:
                Console.WriteLine("Unknown mapping!");
                return;
            }

            if (mapping is ReplaceMapping)
            {
                var replaceMapping = mapping as ReplaceMapping;
                foreach (var replacement in replacements)
                {
                    replaceMapping.Replacements.Add(replacement.Key, replacement.Value);
                }
            }

            switch (mapping.Name)
            {
            case "NameMapping":
                project.ClassNameMapping  = mapping;
                project.HeaderNameMapping = mapping;
                break;

            case "MethodNameMapping":
                project.MethodNameMapping = mapping;
                break;

            case "ParameterNameMapping":
                project.ParameterNameMapping = mapping;
                break;
            }
        }