public IBinding createBinding(IComponent component, IParameterSpecification parameter, String description,
String reference, String defaultBindingType, Location location)
{
String prefix = null;
String path = reference;
BindingFactory factory = null;
int colonx = reference.indexOf(':');
if (colonx > -1)
{
String pathPrefix = reference.substring(0, colonx);
if (_factoryMap.containsKey(pathPrefix))
{
prefix = pathPrefix;
path = reference.substring(colonx + 1);
}
} else if (parameter != null && _propertyMap.containsKey(parameter.getParameterName()))
{
factory = (BindingFactory) _propertyMap.get(parameter.getParameterName());
}
if (prefix == null)
{
prefix = defaultBindingType;
}
if (factory == null)
{
factory = (BindingFactory) _factoryMap.get(prefix);
}
return factory.createBinding(component, description, path, location);
}