public static String createProcessorName(KClass<?> kclass) { return kclass.getSimpleName(); }
public static boolean isAutoEnableCandidate(KClass<?> kclass) { return !kclass.isAbstract() && KotlinConstants.PROCESSOR_CLASSES.values().stream() .filter(processorClass -> ClassUtils.isAssignable(JvmClassMappingKt.getJavaClass(kclass), processorClass)).findFirst() .isPresent(); }
public static void scanNestedToAutoEnable(KClass<?> rootKClass, KotlinKnowledgeBaseEngineOperations sponge, Logger logger) { List<String> autoEnabled = new ArrayList<>(); rootKClass.getNestedClasses().stream().forEachOrdered(kclass -> { if (isAutoEnableCandidate(kclass)) { autoEnabled.add(KotlinUtils.createProcessorName(kclass)); sponge.enable(kclass); } }); if (logger.isDebugEnabled() && !autoEnabled.isEmpty()) { logger.debug("Auto-enabling: {}", autoEnabled); } }
/** * Lookup a {@link Method} to a {@link KFunction}. * * @param method the JVM {@link Method} to look up. * @return {@link Optional} wrapping a possibly existing {@link KFunction}. */ private static Optional<? extends KFunction<?>> findKFunction(Method method) { KClass<?> kotlinClass = JvmClassMappingKt.getKotlinClass(method.getDeclaringClass()); return kotlinClass.getMembers() // .stream() // .flatMap(KotlinReflectionUtils::toKFunctionStream) // .filter(it -> isSame(it, method)) // .findFirst(); }
public static String getClassNameForScriptBinding(Class<?> cls) { String className = cls.getName(); if (className.contains("$")) { className = JvmClassMappingKt.getKotlinClass(cls).getSimpleName(); } return className; }