
for (java.lang.reflect.Method method : visitor.getClass().getDeclaredMethods()) {
    if (visitor instanceof TypedVisitor) {
        return ((TypedVisitor) visitor).getType().isAssignableFrom(fluent.getClass());
    }
    if (method.getParameterTypes().length != 1) {
        continue;
    }
    Class visitorType = method.getParameterTypes()[0];
    if (visitorType.isAssignableFrom(fluent.getClass())) {
        return true;
    } else {
        return false;
    }
}
return false;