Example #1
0
        private IList <TypeRepTemplate> mkTemplates(string typeName)
        {
            List <TypeRepTemplate> rets = new List <TypeRepTemplate>();
            Type t = assembly.GetType(typeName);

            if (t == null)
            {
                throw new Exception(String.Format("Type {0} not found", typeName));
            }
            foreach (Type nestedTy in t.GetNestedTypes())
            {
                foreach (TypeRepTemplate nestedRep in mkTemplates(nestedTy.FullName))
                {
                    rets.Add(nestedRep);
                }
            }
            TypeRepTemplate retRep = null;

            if (t.IsClass)
            {
                if (t.IsSubclassOf(typeof(System.Delegate)))
                {
                    DelegateRepTemplate delRep = new DelegateRepTemplate();
                    buildDelegate(delRep, t);
                    retRep = delRep;
                }
                else
                {
                    ClassRepTemplate classRep = new ClassRepTemplate();
                    buildClass(classRep, t);
                    retRep = classRep;
                }
            }
            else if (t.IsInterface)
            {
                InterfaceRepTemplate intRep = new InterfaceRepTemplate();
                buildInterface(intRep, t);
                retRep = intRep;
            }
            else if (t.IsEnum)
            {
                EnumRepTemplate enumRep = new EnumRepTemplate();
                enumRep.TypeName = TypeHelper.buildTypeName(t);
                foreach (FieldInfo f in t.GetFields(BindingFlags.Public | BindingFlags.Static))
                {
                    enumRep.Members.Add(new EnumMemberRepTemplate(f.Name, f.GetRawConstantValue().ToString()));
                }
                retRep = enumRep;
            }
            rets.Add(retRep);
            return(rets);
        }
Example #2
0
        private void writeXmlStream(TypeRepTemplate inT, TextWriter str)
        {
            XmlSerializer xmls = new XmlSerializer(inT.GetType(), Constants.TranslationTemplateNamespace);

            XmlWriterSettings settings = new XmlWriterSettings();

            settings.Encoding         = Encoding.UTF8;
            settings.Indent           = true;
            settings.IndentChars      = "\t";
            settings.NewLineChars     = Environment.NewLine;
            settings.ConformanceLevel = ConformanceLevel.Document;

            using (XmlWriter writer = XmlTextWriter.Create(str, settings))
            {
                xmls.Serialize(writer, inT);
            }
        }
Example #3
0
        // Here's where we do the real work...
        public static void addNetTranslation(string fullName)
        {
            // Suck in translation file
            Stream txStream = new FileStream(fullName, FileMode.Open, FileAccess.Read);

            try {
                TypeRepTemplate t = TypeRepTemplate.newInstance(txStream);
                // Fullname has form: <path>/<key>.xml
                string txKey = t.TypeName + (t.TypeParams != null && t.TypeParams.Length > 0 ? "'" + t.TypeParams.Length.ToString() : "");
                if (!String.IsNullOrEmpty(t.Variant))
                {
                    AppEnv.Add(txKey, t, t.Variant);
                }
                else
                {
                    AppEnv.Add(txKey, t);
                }
            } catch (Exception e) {
                Console.WriteLine("WARNING -- Could not import " + fullName + " (" + e.Message + ")");
            }
        }
Example #4
0
        private void writeXmlStream(TypeRepTemplate inT, TextWriter str)
        {

            XmlSerializer xmls = new XmlSerializer(inT.GetType(), Constants.TranslationTemplateNamespace);

            XmlWriterSettings settings = new XmlWriterSettings();
            settings.Encoding = Encoding.UTF8;
            settings.Indent = true;
            settings.IndentChars = "\t";
            settings.NewLineChars = Environment.NewLine;
            settings.ConformanceLevel = ConformanceLevel.Document;

            using (XmlWriter writer = XmlTextWriter.Create(str, settings))
            {
                xmls.Serialize(writer, inT);
            }
        }