1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package com.isenshi.util.converter;
23
24 import org.seasar.framework.container.S2Container;
25 import org.seasar.framework.container.factory.S2ContainerFactory;
26
27 import com.isenshi.util.TableMap;
28 import com.isenshi.util.converter.function.ConverterFunction;
29 import com.isenshi.util.functor.CompositeUnaryFunction;
30 import com.isenshi.util.functor.UnaryFunction;
31
32 /***
33 * @author nishioka
34 */
35 public class ConverterResourceImpl implements ConverterResource {
36
37 private final S2Container contaner_ = S2ContainerFactory
38 .create("dicon/local/converter.dicon");
39
40 private TableMap map = new TableMap();
41
42 public void deregister(String siteName) {
43 map.remove(siteName);
44 }
45
46 public void deregister(String siteName, String key) {
47 map.remove(siteName, key);
48 }
49
50 public ConverterFunction createConverterFunction(String type, String src,
51 String target) {
52 ConverterFunction function = (ConverterFunction) contaner_
53 .getComponent(type);
54 function.setSourceField(src);
55 function.setTargetField(target);
56 return function;
57 }
58
59 public void resiter(String siteName, String key, ConverterFunction function) {
60 UnaryFunction orgFunction = getFunction(siteName, key);
61 if (orgFunction != null) {
62 UnaryFunction newFunction = new CompositeUnaryFunction(function,
63 orgFunction);
64 map.put(newFunction, siteName, key);
65 } else {
66 map.put(function, siteName, key);
67 }
68 }
69
70 public UnaryFunction getFunction(String siteName, String key) {
71 return (UnaryFunction) map.get(siteName, key);
72 }
73 }