private static Collection<Binding> wire(BoundExtent bound, BindingContext context, Field field) throws IntrospectionException { String target = bound.to(); final ObjectFieldMethod setter = context.findSetter(target); final ObjectFieldMethod getter = context.findGetter(target); if (setter == null || getter == null) { throw new IllegalArgumentException("could not find setter/getter for @BoundExtent: " + field); } final BindableModel model1 = context.getFieldObject(setter.getField(), BindableModel.class); final BindableModel model2 = context.getFieldObject(getter.getField(), BindableModel.class); assert model1 == model2; if (Component.class.isAssignableFrom(field.getType())) { final JSlider comp = context.getFieldObject(field, JSlider.class); return bindSlider(bound, context, comp, setter, getter, model1); } else { throw new IllegalArgumentException("don't know how to wire up @BoundExtent field: " + field.getName()); } }