// Private Methods private static void EmitWithNamespace(PhpNamespace ns, PhpSourceCodeEmiter emiter, PhpSourceCodeWriter writer, PhpEmitStyle style, IEnumerable <IEmitable> classesInNamespace) { if (classesInNamespace == null) { return; } var inNamespace = classesInNamespace as IEmitable[] ?? classesInNamespace.ToArray(); if (!inNamespace.Any()) { return; } style.CurrentNamespace = ns; try { if (ns.IsRoot) { writer.OpenLn("namespace {"); } else { writer.OpenLnF("namespace {0} {{", ns.Name.Substring(1)); } foreach (var cl in inNamespace) { cl.Emit(emiter, writer, style); } writer.CloseLn("}"); } finally { style.CurrentNamespace = null; } }
// Public Methods // Private Methods private static Item GetItemForNamespace(List<Item> list, PhpNamespace name) { var item = list.Any() ? list.Last() : null; if (item == null || item.Name != name) { item = new Item(name); list.Add(item); } return item; }
// Private Methods private static void EmitWithNamespace(PhpNamespace ns, PhpSourceCodeEmiter emiter, PhpSourceCodeWriter writer, PhpEmitStyle style, IEnumerable<IEmitable> classesInNamespace) { if (classesInNamespace == null) return; var inNamespace = classesInNamespace as IEmitable[] ?? classesInNamespace.ToArray(); if (!inNamespace.Any()) return; style.CurrentNamespace = ns; try { if (ns.IsRoot) writer.OpenLn("namespace {"); else writer.OpenLnF("namespace {0} {{", ns.Name.Substring(1)); foreach (var cl in inNamespace) cl.Emit(emiter, writer, style); writer.CloseLn("}"); } finally { style.CurrentNamespace = null; } }
/* * /// <summary> * /// Tworzy instancję obiektu * /// </summary> * public PhpNamespaceStatement() * { * } * * Przykłady użycia * * implement INotifyPropertyChanged * implement INotifyPropertyChanged_Passive * implement ToString ##Name## ##Code## * implement ToString Name=##Name##, Code=##Code## * implement equals Name, Code * implement equals * * implement equals *, ~exclude1, ~exclude2 */ #region Constructors /// <summary> /// Tworzy instancję obiektu /// <param name="Name">namespace name</param> /// </summary> public PhpNamespaceStatement(PhpNamespace Name) { this.Name = Name; }
public Item(PhpNamespace Name) { this.Name = Name; Items = new List<IEmitable>(); ; }
/// <summary> /// Sprawdza, czy wskazany obiekt jest równy bieżącemu /// </summary> /// <param name="obj">obiekt do porównania z obiektem bieżącym</param> /// <returns><c>true</c> jeśli wskazany obiekt jest równy bieżącemu; w przeciwnym wypadku<c>false</c></returns> public bool Equals(PhpNamespace other) { return(other == this); }
/* /// <summary> /// Tworzy instancję obiektu /// </summary> public PhpNamespaceStatement() { } Przykłady użycia implement INotifyPropertyChanged implement INotifyPropertyChanged_Passive implement ToString ##Name## ##Code## implement ToString Name=##Name##, Code=##Code## implement equals Name, Code implement equals * implement equals *, ~exclude1, ~exclude2 */ #region Constructors /// <summary> /// Tworzy instancję obiektu /// <param name="Name">namespace name</param> /// </summary> public PhpNamespaceStatement(PhpNamespace Name) { this.Name = Name; }