/** * Call the installed TokenBinder instances, calling bind() for each one * and passing the object so the TokenBinders can extract token values * from the object. * * @param object an object for which to extract token bindings. */ @SuppressWarnings({ "rawtypes", "unchecked" }) private void callTokenBinders(Object object) { if (object == null) return; for (TokenBinder tokenBinder : binders) { Class<?> binderClass = (Class<?>) ((ParameterizedType) tokenBinder .getClass() .getGenericInterfaces()[0]) .getActualTypeArguments()[0]; if (binderClass.isAssignableFrom(object.getClass())) { tokenBinder.bind(object, this); } } }