1 package org.weda.tapestry.binding;
2
3 import org.apache.commons.logging.Log;
4 import org.apache.hivemind.Location;
5 import org.apache.tapestry.IBinding;
6 import org.apache.tapestry.IComponent;
7 import org.apache.tapestry.binding.AbstractBindingFactory;
8 import org.apache.tapestry.binding.BindingSource;
9
10 /**
11 *
12 * @author tim
13 */
14 public class GlobalBindingFactory extends AbstractBindingFactory{
15 private BindingSource bindingSource;
16 private String frameworkPrefix;
17 private Log log;
18
19 public IBinding createBinding(
20 IComponent component, String description, String expression
21 , Location location)
22 {
23 String[] expressions = expression.split(";");
24 IBinding[] bindings = new IBinding[expressions.length];
25 for (int i=0; i<expressions.length; ++i){
26 String expr = frameworkPrefix+"."+expressions[i];
27 if (log.isDebugEnabled())
28 log.debug(
29 String.format(
30 "creating binding for expression (%s)"
31 , expr));
32 bindings[i]=bindingSource.createBinding(
33 component, expr, expr, null, location);
34 }
35 return new GlobalBinding(
36 description, getValueConverter(), location, bindings);
37 }
38
39 public void setBindingSource(BindingSource bindingSource) {
40 this.bindingSource = bindingSource;
41 }
42
43 public void setFrameworkPrefix(String frameworkPrefix) {
44 this.frameworkPrefix = frameworkPrefix;
45 }
46
47 public void setLog(Log log) {
48 this.log = log;
49 }
50 }