private static void Uml2Code(IEnumerable<string> paths, string _target)
{
foreach (string path in paths) {
string target = _target.Length > 0 ? _target + "/" : path + "/codegen/";
Console.WriteLine (path);
List<IUmlObject> objects = new List<IUmlObject> ();
Action<string> processFile = (filename) => {
IParser parser = new UmlParser ();
objects.AddRange (parser.Parse (filename));
};
Files.SearchFiles (path, new string[]{".uml"}, processFile);
foreach (IUmlObject obj in objects) {
List<string> lines = new List<string> ();
lines.Add (obj.ToCSharpCode () + "\n");
string genfile = target + Packages.GetPackage (obj.Name).Replace (".", "/") + "/" + obj.Name.Clean () + ".cs";
Console.WriteLine ("Write: " + genfile);
Files.WriteLines (genfile, lines);
}
}
}