예제 #1
0
 public T GetImmediateParentOfType <T>(CodeElement item = null)
 {
     if (item == null)
     {
         return(GetImmediateParentOfType <T>(this));
     }
     else if (item is T p)
     {
         return(p);
     }
     else if (item.Parent == null)
     {
         throw new InvalidOperationException($"item {item.Name} of type {item.GetType()} does not have a parent");
     }
     else if (item.Parent is T p2)
     {
         return(p2);
     }
     else
     {
         return(GetImmediateParentOfType <T>(item.Parent));
     }
 }
예제 #2
0
 public CodeMethod(CodeElement parent) : base(parent)
 {
 }
예제 #3
0
 protected CodeTerminal(CodeElement parent) : base(parent)
 {
 }
예제 #4
0
 public override string NormalizeFileName(CodeElement currentElement) => GetLastFileNameSegment(currentElement).ToFirstCharacterUpperCase();
예제 #5
0
 public CodeBlock(CodeElement parent) : base(parent)
 {
     StartBlock = new BlockDeclaration(this);
     EndBlock   = new BlockEnd(this);
 }
예제 #6
0
 public CodeUnionType(CodeElement parent) : base(parent)
 {
 }
예제 #7
0
 protected static string GetLastFileNameSegment(CodeElement currentElement) => currentElement.Name.Split('.').Last();
예제 #8
0
 private CodeNamespace(CodeElement parent) : base(parent)
 {
 }
예제 #9
0
 public abstract string NormalizeFileName(CodeElement currentElement);
예제 #10
0
 public virtual IEnumerable <string> GetAdditionalSegment(CodeElement currentElement, string fileName) => Enumerable.Empty <string>();
예제 #11
0
 public CodeClass(CodeElement parent) : base(parent)
 {
     StartBlock = new Declaration(this);
     EndBlock   = new End(this);
 }
예제 #12
0
파일: CodeEnum.cs 프로젝트: PureKrome/kiota
 public CodeEnum(CodeElement parent) : base(parent)
 {
 }
예제 #13
0
 protected CodeTypeBase(CodeElement parent) : base(parent)
 {
 }
예제 #14
0
 public CodeParameter(CodeElement parent) : base(parent)
 {
 }
예제 #15
0
        public static async Task RenderCodeNamespaceToSingleFileAsync(LanguageWriter writer, CodeElement codeElement, string outputFile)
        {
            using var stream = new FileStream(outputFile, FileMode.Create);

            var sw = new StreamWriter(stream);

            writer.SetTextWriter(sw);
            RenderCode(writer, codeElement);
            await sw.FlushAsync();
        }
예제 #16
0
 public CodeProperty(CodeElement parent) : base(parent)
 {
 }
예제 #17
0
 public CodeUsing(CodeElement parent) : base(parent)
 {
 }