using System; using System.Collections.Generic; using System.Linq; using System.Text; using HyperActive.Dominator; using System.CodeDom; using HyperActive.SchemaProber; using HyperActive.Core.Config; namespace Phantasm.HyperActiveExtensions { public class CustomGenerator : HyperActive.Core.Generators.ConfigurableActiveRecordGenerator { /// /// Initializes a new instance of the CustomGenerator class. /// public CustomGenerator() : base(null) { } protected override HyperActive.Dominator.ClassDeclaration CreateConstructors(HyperActive.Dominator.ClassDeclaration classDecl, HyperActive.SchemaProber.TableSchema table) { string summary = String.Format("Initializes a new instance of {0}.", classDecl.Name); classDecl.AddConstructor(summary); PrimaryKeyColumnSchema pk = table.PrimaryKey; if (pk == null) return classDecl; MethodDeclaration method = classDecl.AddMethod("Find", new CodeDomTypeReference(this.NameProvider.GetClassName(table))); method.MethodAttributes.Add(MemberAttributes.Public | MemberAttributes.Static | MemberAttributes.Final); method.AddParameter(typeof(int), "id"); method.Returns("FindByPrimaryKey").With("id", "false"); return classDecl; } } }