@SuppressWarnings("unchecked") <T> boolean doRegister(T object) { boolean success = false; final Set<Class<?>> modelSupportedTypes = registry.keySet(); for (final Class<?> modelSupportedType : modelSupportedTypes) { if (modelSupportedType.isAssignableFrom(object.getClass())) { final Collection<Model<?>> assignableModels = registry .get(modelSupportedType); for (final Model<?> m : assignableModels) { success |= ((Model<T>) m).register(object); } } } return success; }