public virtual void Write(ICodeFragment fragment, IOutputCache output) { PropertyTemplate template = (PropertyTemplate)fragment; FieldTemplate fieldTemplate = new FieldTemplate(template.Class, template.Name, template.Type).FormatName(output.Language, true); if (fieldTemplate.Name == template.Name) { fieldTemplate.Name += "Field"; } fieldTemplate.DefaultValue = template.DefaultValue; output.Add(fieldTemplate); if (template.HasGetter) { output.If(template.Visibility != Visibility.None).Add(template.Visibility.ToString().ToLower()).Add(" ").EndIf() .If(template.IsStatic).Add("static ").EndIf() .Add($"get {template.Name}(): ") .Add(template.Type) .StartBlock() .Add(Code.Return(Code.This().Field(fieldTemplate.Name))) .EndBlock(); } if (template.HasSetter) { output.If(template.Visibility != Visibility.None).Add(template.Visibility.ToString().ToLower()).Add(" ").EndIf() .If(template.IsStatic).Add("static ").EndIf() .Add($"set {template.Name}(value: ") .Add(template.Type) .Add(")") .StartBlock() .Add(Code.This().Field(fieldTemplate.Name).Assign(Code.Local("value")).Close()) .EndBlock(); } }
public virtual void Write(ICodeFragment fragment, IOutputCache output) { PropertyTemplate template = (PropertyTemplate)fragment; FieldTemplate fieldTemplate = new(template.Class, template.Name, template.Type); fieldTemplate.Strict = template.Strict; if (template.Getter == null && template.HasGetter || template.Setter == null && template.HasSetter) { if (fieldTemplate.Name == template.Name) { fieldTemplate.Name += "Field"; } fieldTemplate.DefaultValue = template.DefaultValue; output.Add(fieldTemplate); } if (template.HasGetter || template.Getter != null) { output.If(template.Visibility != Visibility.None).Add(template.Visibility.ToString().ToLower()).Add(" ").EndIf() .If(template.IsStatic).Add("static ").EndIf() .Add($"get {template.Name}(): ") .Add(template.Type) .If(template.Strict && template.Type.IsNullable).Add(" | undefined").EndIf() .StartBlock() .Add(template.Getter ?? Code.Return(Code.This().Field(fieldTemplate.Name))) .EndBlock(); } if (template.HasSetter || template.Setter != null) { output.If(template.Visibility != Visibility.None).Add(template.Visibility.ToString().ToLower()).Add(" ").EndIf() .If(template.IsStatic).Add("static ").EndIf() .Add($"set {template.Name}(value: ") .Add(template.Type) .If(template.Strict && template.Type.IsNullable).Add(" | undefined").EndIf() .Add(")") .StartBlock() .Add(template.Setter ?? Code.This().Field(fieldTemplate.Name).Assign(Code.Local("value")).Close()) .EndBlock(); } }
public virtual void Write(ICodeFragment fragment, IOutputCache output) { FieldTemplate template = (FieldTemplate)fragment; output.If(template.Visibility != Visibility.None).Add(template.Visibility.ToString().ToLower()).Add(" ").EndIf() .If(template.IsStatic).Add("static ").EndIf() .If(template.IsConst).Add("const ").EndIf() .If(template.IsReadonly).Add("readonly ").EndIf() .Add(template.Name) .Add(": ") .Add(template.Type) .If(template.DefaultValue != null).Add(" = ").Add(template.DefaultValue).EndIf() .CloseLine(); }
public virtual void Write(ICodeFragment fragment, IOutputCache output) { FieldTemplate template = (FieldTemplate)fragment; output.If(template.Visibility != Visibility.None).Add(template.Visibility.ToString().ToLower()).Add(" ").EndIf() .If(template.IsStatic || template.IsConstant).Add("static ").EndIf() .If(template.IsReadonly || template.IsConstant).Add("readonly ").EndIf() .Add(template.Name) .If(template.IsOptional).Add("?").EndIf() .Add(": ") .Add(template.Type) .If(template.DefaultValue == null && template.Strict && template.Type.IsNullable).Add(" | undefined").EndIf() .If(template.DefaultValue != null && !template.Class.IsInterface).Add(" = ").Add(template.DefaultValue).EndIf() .CloseLine(); }
public virtual void Write(ICodeFragment fragment, IOutputCache output) { AnonymousObjectTemplate template = (AnonymousObjectTemplate)fragment; output.Add("{") .Indent(); PropertyValueTemplate last = template.Properties.LastOrDefault(); foreach (PropertyValueTemplate property in template.Properties) { output.If(property.Value == null).Add(property.Name).EndIf() .If(property.Value != null).Add($"{property.Name}: ").Add(property.Value).EndIf() .If(property != last).Add(",").EndIf() .BreakLine(); } output.UnIndent().Add("}"); }
public virtual void Write(ICodeFragment fragment, IOutputCache output) { BaseLanguage language = this.options.Language.CastTo <BaseLanguage>(); ClassTemplate template = (ClassTemplate)fragment; output.Add(template.Comment); output.Add(template.Attributes); output.Add(language.ClassScope).Add(" "); if (template.IsAbstract && language.HasAbstractClasses && !template.IsInterface) { output.Add("abstract "); } if (template.IsStatic && language.HasStaticClasses) { output.Add("static "); } else if (!string.IsNullOrEmpty(language.PartialKeyword)) { output.Add(language.PartialKeyword).Add(" "); } if (template.IsInterface) { output.Add("interface "); } else { output.Add("class "); } output.Add(template.Name); if (template.Generics.Count > 0) { output.Add("<").Add(template.Generics.Select(x => Code.Instance.Type(x.Name)), ", ").Add(">"); } template.BasedOn.OrderBy(x => x.ToType().IsInterface).ForEach(x => output.Add(x)); output.Add(template.Generics.Select(x => x.ToConstraints()).Where(x => x.Types.Count > 0)); output.StartBlock(); if (template.IsInterface) { template.Fields.ForEach(x => x.Visibility = Visibility.None); template.Properties.ForEach(x => x.Visibility = Visibility.None); } bool isFirst = true; if (template.Classes.Count > 0) { output.Add(template.Classes); isFirst = false; } if (template.Fields.Count > 0) { output.If(!isFirst).BreakLine().EndIf(); output.Add(template.Fields); isFirst = false; } if (template.Properties.Count > 0) { output.If(!isFirst).BreakLine().EndIf(); output.Add(template.Properties); isFirst = false; } if (template.Code != null) { output.If(!isFirst).BreakLine().EndIf(); output.Add(template.Code); isFirst = false; } if (template.Methods.Count > 0) { output.If(!isFirst).BreakLine().EndIf(); MethodTemplate last = template.Methods.Last(); foreach (MethodTemplate method in template.Methods) { output.Add(method); if (method != last) { output.BreakLine(); } } } if (this.options.Formatting.CollapseEmptyClasses && output.LastFragments.First().Equals(template)) { output.UnBreakLine(); output.Add(this.options.Formatting.CollapsedClassesSpacer, true); } output.EndBlock(); }