@Override public BindableElement createBindableElement(Class<?> modelClass, String camelName) { BindableElement element; Class<? extends BindableElement> elementClass = getBindableElementClass(modelClass); if (elementClass != null) { try { Constructor<? extends BindableElement> con = elementClass.getConstructor(String.class); element = con.newInstance(camelName); } catch (IllegalAccessException | IllegalArgumentException | InstantiationException | NoSuchMethodException | SecurityException | InvocationTargetException ex) { throw new BindingException("could not instantiate bindable element " + elementClass.getName(), ex); } } else { // if all else fails: createBinding a default binding element = new DefaultBindableElement(camelName); } LOGGER.fine("created binding {0}", element); return element; }