Beispiel #1
0
        private void _WriteSaveMethod(Type type, List <MemberBase> members)
        {
            if (_rootTypes.Contains(type))
            {
                _writer.WriteLine("[Export(ExportFlags.AutoCode)]");
                _writer.WriteLine("public virtual void Save (IOctetsWriter writer)");
                using (CodeScope.CreateCSharpScope(_writer))
                {
                    _writer.WriteLine("throw new NotImplementedException(\"This method should be override~\");");
                }
            }
            else
            {
                using (MacroScope.CreateEditorScope(_writer.BaseWriter))
                {
                    _writer.WriteLine("[Export(ExportFlags.AutoCode)]");

                    var overrideText = _rootTypes.Contains(EditorMetaCommon.GetRootMetadata(type)) ? "override " : string.Empty;
                    _writer.WriteLine("public {0}void Save (IOctetsWriter writer)", overrideText);
                    using (CodeScope.Create(_writer, "{\n", "}\n"))
                    {
                        for (int index = 0; index < members.Count; ++index)
                        {
                            var member = members[index];
                            member.WriteSave(_writer);
                        }
                    }
                }
            }
        }
Beispiel #2
0
        private void _WriteToStringMethod(Type type, List <MemberBase> members)
        {
            //			_writer.WriteLine("[Export(ExportFlags.AutoCode)]");
            _writer.WriteLine("public override string ToString ()");
            using (CodeScope.Create(_writer, "{\n", "}\n"))
            {
                var memberCount = members.Count;

                if (memberCount > 0)
                {
                    _sbText.Append("return string.Format(\"[");
                    _sbText.Append(type.Name);
                    _sbText.Append(":ToString()] ");

                    for (int index = 0; index < memberCount; ++index)
                    {
                        _sbText.Append(members[index].GetMemberName());
                        _sbText.Append("={");
                        _sbText.Append(index);
                        _sbText.Append("}");

                        if (index < memberCount - 1)
                        {
                            _sbText.Append(", ");
                        }
                    }

                    _sbText.Append("\", ");

                    for (int index = 0; index < memberCount; ++index)
                    {
                        _sbText.Append(members[index].GetMemberName());

                        if (index < memberCount - 1)
                        {
                            _sbText.Append(", ");
                        }
                    }

                    _sbText.Append(");");
                }
                else
                {
                    _sbText.Append("return \"[");
                    _sbText.Append(type.Name);
                    _sbText.Append(":ToString()]\";");
                }

                _writer.WriteLine(_sbText.ToString());
                _sbText.Length = 0;
            }
        }
Beispiel #3
0
 private void _WriterMetadataManagerConfigs(List <string> configs)
 {
     using (_writer = new CodeWriter(_GetConfigManagerPath()))
     {
         _WriteFileHead();
         using (CodeScope.Create(_writer, "{\n", "}"))
         {
             _writer.WriteLine("public partial class ConfigManager");
             using (CodeScope.CreateCSharpScope(_writer))
             {
                 _writer.WriteLine("partial void _LoadConfigs()");
                 using (CodeScope.CreateCSharpScope(_writer))
                 {
                     foreach (var config in configs)
                     {
                         _writer.WriteLine("_AddLoaderConfig<{0}>();", config);
                     }
                 }
             }
         }
     }
 }
Beispiel #4
0
 private void _WriteMetadataManagerTemplates(List <string> templates)
 {
     using (_writer = new CodeWriter(_GetTemplateManagerPath()))
     {
         _WriteFileHead();
         using (CodeScope.Create(_writer, "{\n", "}"))
         {
             _writer.WriteLine("public partial class TemplateManager");
             using (CodeScope.CreateCSharpScope(_writer))
             {
                 _writer.WriteLine("partial void _LoadTemplates()");
                 using (CodeScope.CreateCSharpScope(_writer))
                 {
                     foreach (var template in templates)
                     {
                         _writer.WriteLine("_AddLoaderTemplate<{0}>();", template);
                     }
                 }
             }
         }
     }
 }
Beispiel #5
0
        private void _WriteAllMetadataClasses(MetaManager metaManager)
        {
            foreach (var type in metaManager.MetaTypes)
            {
                if (type.IsNested ||
                    type.IsSerializable ||
                    !_rootTypes.Contains(type.RawType) && type.IsAbstract)
                {
                    continue;
                }

                using (_writer = new CodeWriter(type.GetAutoCodePath()))
                {
                    _WriteFileHead();

                    using (CodeScope.Create(_writer, "{\n", "}"))
                    {
                        _WriteOneClassOrStruct(type.RawType, type.GetExportFlags());
                    }
                }
            }
        }