01: /**
02: * Objective Database Abstraction Layer (ODAL)
03: * Copyright (c) 2004, The ODAL Development Group
04: * All rights reserved.
05: * For definition of the ODAL Development Group please refer to LICENCE.txt file
06: *
07: * Distributable under LGPL license.
08: * See terms of license at gnu.org.
09: */package com.completex.objective.tools.generators;
10:
11: import freemarker.cache.ClassTemplateLoader;
12: import freemarker.cache.FileTemplateLoader;
13: import freemarker.cache.TemplateLoader;
14: import freemarker.template.Configuration;
15: import freemarker.template.ObjectWrapper;
16: import freemarker.template.Template;
17:
18: import java.io.File;
19: import java.io.IOException;
20:
21: /**
22: * @author Gennady Krizhevsky
23: */
24: public class TemplateHelper {
25:
26: static Template getTemplate(String templatePath,
27: String defaultTemplateFileName, Class clazz, boolean debug)
28: throws IOException {
29: try {
30: Configuration cfg = Configuration.getDefaultConfiguration();
31: cfg.setObjectWrapper(ObjectWrapper.BEANS_WRAPPER);
32:
33: TemplateLoader templateLoader = null;
34: String fileName = null;
35: if (templatePath != null) {
36: println(
37: "Getting FileTemplateLoader since templatePath = ["
38: + templatePath + "]", debug);
39: File templateFile = new File(templatePath);
40: if (!templateFile.exists()) {
41: throw new RuntimeException("templateFile ["
42: + templatePath + "] does not exist");
43: }
44: fileName = templateFile.getName();
45: templateLoader = new FileTemplateLoader(templateFile
46: .getParentFile());
47: } else {
48: println(
49: "Getting ClassTemplateLoader since templatePath = ["
50: + templatePath + "]", debug);
51: templateLoader = new ClassTemplateLoader(clazz);
52: fileName = defaultTemplateFileName;
53: }
54: cfg.setTemplateLoader(templateLoader);
55: Template template = cfg.getTemplate(fileName);
56: return template;
57: } catch (NoClassDefFoundError e) {
58: System.err
59: .println("NoClassDefFoundError for templatePath = ["
60: + templatePath + "]");
61: throw e;
62: }
63: }
64:
65: private static void println(String s, boolean debug) {
66: if (debug) {
67: System.out.println(s);
68: }
69: }
70: }
|