Added ability to order the execution of dictionary adapter behaviors.
[castle.git] / Experiments / Castle.MonoRail.Generator / Generators / AbstractGenerator.cs
blob00881c6c517e2a2181801790e6877664ae92849a
1 // Copyright 2004-2007 Castle Project - http://www.castleproject.org/
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle.MonoRail.Generator.Generators
17 using System;
18 using System.IO;
19 using System.Text;
20 using System.Collections;
22 using Castle.Components.Common.TemplateEngine.NVelocityTemplateEngine;
24 /// <summary>
25 /// Base Generator only set up the template engine
26 /// </summary>
27 public abstract class AbstractGenerator
29 private static readonly String ResourcePrefix = "Castle.MonoRail.Generator.templates.";
31 protected NVelocityTemplateEngine engine;
33 public AbstractGenerator()
35 engine = new NVelocityTemplateEngine();
37 engine.AddResourceAssembly(System.Reflection.Assembly.GetExecutingAssembly().FullName);
39 engine.BeginInit();
40 engine.EndInit();
43 protected void WriteTemplateFile(String filename, Hashtable ctx, String templateName)
45 using (StreamWriter swriter = new StreamWriter(filename, false, Encoding.Default))
47 engine.Process(ctx, ResourcePrefix + templateName, swriter);