001 package org.apache.tapestry.binding;
002
003 import org.apache.hivemind.Location;
004 import org.apache.tapestry.IBinding;
005 import org.apache.tapestry.IComponent;
006
007 import java.util.List;
008
009 /**
010 * Converts string values to String arrays and hands them off to a {@link ClientIdListBinding} instance.
011 */
012 public class ClientIdListBindingFactory extends AbstractBindingFactory {
013
014 public IBinding createBinding(IComponent root, String bindingDescription, String expression, Location location)
015 {
016 // convert to String array first
017 List ids = (List) getValueConverter().coerceValue(expression, List.class);
018 String[] clientIds = (String[]) ids.toArray(new String[ids.size()]);
019
020 return new ClientIdListBinding(bindingDescription, getValueConverter(), location, root, clientIds);
021 }
022 }