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 }