KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > speedo > generation > generator > api > VelocityGenerator


1 /**
2  * Speedo: an implementation of JDO compliant personality on top of JORM generic
3  * I/O sub-system.
4  * Copyright (C) 2001-2004 France Telecom R&D
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19  *
20  *
21  *
22  * Contact: speedo@objectweb.org
23  *
24  * Authors: S.Chassande-Barrioz.
25  *
26  */

27
28 package org.objectweb.speedo.generation.generator.api;
29
30 import org.apache.velocity.app.VelocityEngine;
31 import org.objectweb.speedo.api.SpeedoException;
32 import org.objectweb.speedo.generation.api.GeneratorComponent;
33 import org.objectweb.speedo.metadata.SpeedoClass;
34
35 import java.util.Collection JavaDoc;
36
37 /**
38  * This interface represents a component of a generator which generates a file
39  * with the Velocity tool. The use of this interface permits to reuse the
40  * VelocityEngine in order have better generation performance. Indeed the
41  * VelocityEngine initialization is very cheap.
42  *
43  * @author S.Chassande-Barrioz
44  */

45 public interface VelocityGenerator extends GeneratorComponent {
46
47     /**
48      * It assignes the VelocityEngine instance which must be used during the
49      * veleocity generatioin.
50      * @param ve is the VelocityEngine instance to use.
51      */

52     void setVelocityEngine(VelocityEngine ve);
53
54     /**
55      * @return the VelocityEngine used during the velocity generation.
56      */

57     VelocityEngine getVelocityEngine();
58
59     /**
60      * @return a collection of the file names which contains macros. This file
61      * name list will be given to the VelocityEngine during its initialization.
62      */

63     Collection JavaDoc getExternalsTemplate();
64
65     /**
66      * It generates the file name corresponding to the Speedo meta object given
67      * in parameter.
68      * @param sClass is the speedo meta object which represents a persistent class
69      * @param fileName is the generated file name
70      * @throws SpeedoException
71      */

72     void generate(SpeedoClass sClass, String JavaDoc fileName) throws SpeedoException;
73 }
74
Popular Tags