|
using System;
using System.Collections.Generic;
using System.Text;
using Harlinn.DBTool.Projects;
namespace Harlinn.DBTool.CodeGenerators.ServiceImplementation
{
public class DataObserverInterfaceGenerator : GeneratorBase
{
private Project project;
private string interfaceName = "IDataObserver";
SortedSet<string> methodNames = new SortedSet<string>();
public DataObserverInterfaceGenerator(Project project)
{
this.project = project;
}
Project Project
{
get
{
return project;
}
}
public override string GetFilename()
{
string directory = GetDirectory();
string result = directory + "\\" + interfaceName + ".cs";
return result;
}
public override string GetDirectory()
{
string namespace_ = Project.DataNamespace;
string directory = Project.NamespaceToDirectory(namespace_);
return directory;
}
public void Generate()
{
string dataNamespace = Project.DataNamespace;
WriteLine("using System;");
WriteLine("using System.Collections.Generic;");
WriteLine();
WriteLine("namespace " + dataNamespace);
WriteLine("{");
WriteLine();
WriteLine(" public interface " + interfaceName);
WriteLine(" {");
WriteLine();
Process();
WriteLine();
WriteLine(" }");
WriteLine();
WriteLine();
WriteLine("}");
WriteLine();
}
private void Process()
{
WriteLine();
Process(project.GetProjectTables());
}
private void Process(ProjectTables projectTables)
{
foreach (ProjectTable projectTable in projectTables.Children)
{
Process(projectTable);
}
}
private void Process(ProjectTable projectTable)
{
string baseName = projectTable.GetBaseName();
WriteLine(" void On" + baseName + "Inserted(object sender, On" + baseName + "InsertedEventArgs eventArgs );");
WriteLine(" void On" + baseName + "Changed(object sender, On" + baseName + "ChangedEventArgs eventArgs );");
WriteLine(" void On" + baseName + "Deleted(object sender, On" + baseName + "DeletedEventArgs eventArgs );");
WriteLine();
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Chief Architect - Sea Surveillance AS.
Specializing in integrated operations and high performance computing solutions.
I’ve been fooling around with computers since the early eighties, I’ve even done work on CP/M and MP/M.
Wrote my first “real” program on a BBC micro model B based on a series in a magazine at that time. It was fun and I got hooked on this thing called programming ...
A few Highlights:
- High performance application server development
- Model Driven Architecture and Code generators
- Real-Time Distributed Solutions
- C, C++, C#, Java, TSQL, PL/SQL, Delphi, ActionScript, Perl, Rexx
- Microsoft SQL Server, Oracle RDBMS, IBM DB2, PostGreSQL
- AMQP, Apache qpid, RabbitMQ, Microsoft Message Queuing, IBM WebSphereMQ, Oracle TuxidoMQ
- Oracle WebLogic, IBM WebSphere
- Corba, COM, DCE, WCF
- AspenTech InfoPlus.21(IP21), OsiSoft PI
More information about what I do for a living can be found at:
harlinn.com or
LinkedIn
You can contact me at
espen@harlinn.no