private void prepareBinding(Object target) {
        if (target == null) {
            return; // Nothing to prepare...
        }
        try {
            Method method = target.getClass().getMethod("addPropertyChangeListener", PropertyChangeListener.class);
            method.invoke(target, this.listenerData);
        } catch (NoSuchMethodException e) {
            System.out.println("Binding may fail for " + attributeName + ": addPropertyChangeListener missing in bound value.");
        } catch (InvocationTargetException e) {
            e.printStackTrace();
            assert (false);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
            assert (false);
        }

        copyBinding();
    }