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); } } } } }
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; } }
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); } } } } } }
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); } } } } } }
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()); } } } }