__CLOVER_210_0.S[4884]++;LOG.debug("Not bound.");}
__CLOVER_210_0.S[4885]++;continue;
}}
__CLOVER_210_0.S[4886]++;IParameterSpecification pspec = spec.getParameter(name);
__CLOVER_210_0.S[4887]++;Direction direction = pspec.getDirection();
__CLOVER_210_0.S[4888]++;if ((((direction != Direction.IN && direction != Direction.FORM) && (++__CLOVER_210_0.CT[886] != 0)) || (++__CLOVER_210_0.CF[886] == 0))){
{
__CLOVER_210_0.S[4889]++;if ((((debug) && (++__CLOVER_210_0.CT[887] != 0)) || (++__CLOVER_210_0.CF[887] == 0))){
__CLOVER_210_0.S[4890]++;LOG.debug("Parameter is " + pspec.getDirection().getName() + ".");}
__CLOVER_210_0.S[4891]++;continue;
}}
__CLOVER_210_0.S[4892]++;if ((((!direction.getAllowInvariant() && binding.isInvariant()) && (++__CLOVER_210_0.CT[888] != 0)) || (++__CLOVER_210_0.CF[888] == 0))){
__CLOVER_210_0.S[4893]++;throw new ConnectedParameterException(Tapestry.format(
"ParameterManager.incompatible-direction-and-binding",
new Object[]
{ name, _component.getExtendedId(), direction.getDisplayName(), binding }),
_component, name, null, binding.getLocation(), null);}
__CLOVER_210_0.S[4894]++;String propertyName = pspec.getPropertyName();
__CLOVER_210_0.S[4895]++;if ((((debug && !name.equals(propertyName)) && (++__CLOVER_210_0.CT[889] != 0)) || (++__CLOVER_210_0.CF[889] == 0))){
__CLOVER_210_0.S[4896]++;LOG.debug("Connecting to property " + propertyName + ".");}
// Next,verify that there is a writable property with the same
// name as the parameter.
__CLOVER_210_0.S[4897]++;PropertyAdaptor adaptor = null;
__CLOVER_210_0.S[4898]++;try
{
__CLOVER_210_0.S[4899]++;adaptor = PropertyUtils.getPropertyAdaptor(_component, propertyName);
}
catch (Exception ex)
{
__CLOVER_210_0.S[4900]++;throw new ConnectedParameterException(ex.getMessage(), _component, name,
propertyName, binding.getLocation(), ex);
}
__CLOVER_210_0.S[4901]++;if ((((!(adaptor.isReadable() && adaptor.isWritable())) && (++__CLOVER_210_0.CT[890] != 0)) || (++__CLOVER_210_0.CF[890] == 0))){
{
__CLOVER_210_0.S[4902]++;throw new ConnectedParameterException(Tapestry.format(
"ParameterManager.property-not-read-write",
_component.getExtendedId(),
propertyName), _component, name, propertyName, binding.getLocation(), null);
}}
// Check if the parameter type matches the property type
__CLOVER_210_0.S[4903]++;Class propertyType = adaptor.getPropertyType();
__CLOVER_210_0.S[4904]++;Class parameterType = getType(pspec.getType(), resolver);
__CLOVER_210_0.S[4905]++;if ((((parameterType == null) && (++__CLOVER_210_0.CT[891] != 0)) || (++__CLOVER_210_0.CF[891] == 0))){
{
__CLOVER_210_0.S[4906]++;throw new ConnectedParameterException(Tapestry.format(
"ParameterManager.java-type-not-specified",