1
2
3
4
5
6
7 package org.asyrinx.joey.gen.task.impl;
8
9 import java.io.File;
10 import java.io.IOException;
11 import java.util.HashMap;
12 import java.util.Map;
13
14 import org.apache.tools.ant.BuildException;
15 import org.apache.velocity.context.Context;
16 import org.asyrinx.brownie.core.io.FileNameUtils;
17 import org.asyrinx.joey.gen.task.BizLogicDistiller;
18 import org.asyrinx.joey.gen.task.GenerationQuery;
19
20 /***
21 * @author takeshi
22 */
23 public class BizLogicDistillerComposite implements BizLogicDistiller, GenerationQuery {
24
25 /***
26 *
27 */
28 public BizLogicDistillerComposite() {
29 super();
30 }
31
32 private final Map distillers = new HashMap();
33
34 public boolean canGenerate(String inputTemplate, File outputFile, Context context) {
35 final String ext = FileNameUtils.getExtension(outputFile.getName());
36 final String distilled;
37 try {
38 distilled = this.distill(outputFile);
39 } catch (IOException e) {
40 throw new BuildException(e);
41 }
42 context.put("bizLogic", distilled);
43 return this.distillers.containsKey(ext);
44 }
45
46 public String distill(File source) throws IOException {
47 final String ext = FileNameUtils.getExtension(source.getName());
48 final BizLogicDistiller distiller = (BizLogicDistiller) distillers.get(ext);
49 if (distiller != null)
50 return distiller.distill(source);
51 else
52 return "";
53 }
54
55 public void put(String ext, BizLogicDistiller distiller) {
56 this.distillers.put(ext, distiller);
57 }
58
59 }