@Specialization(replaces = "doCached") static JavaMethodDesc doUncached(Class<?> clazz) { return JavaClassDesc.forClass(clazz).getFunctionalMethod(); } }
@Specialization(replaces = "doCached") static JavaMethodDesc doUncached(Class<?> clazz) { return JavaClassDesc.forClass(clazz).lookupConstructor(); } }
@CompilerDirectives.TruffleBoundary static JavaFieldDesc findField(Class<?> clazz, String name, boolean onlyStatic) { JavaClassDesc classDesc = JavaClassDesc.forClass(clazz); return classDesc.lookupField(name, onlyStatic); }
@CompilerDirectives.TruffleBoundary static JavaMethodDesc findMethod(Class<?> clazz, String name, boolean onlyStatic) { if (TruffleOptions.AOT) { return null; } JavaClassDesc classDesc = JavaClassDesc.forClass(clazz); JavaMethodDesc foundMethod = classDesc.lookupMethod(name, onlyStatic); if (foundMethod == null && isJNIName(name)) { foundMethod = classDesc.lookupMethodByJNIName(name, onlyStatic); } return foundMethod; }
@CompilerDirectives.TruffleBoundary static String[] findUniquePublicMemberNames(Class<?> clazz, boolean onlyStatic, boolean includeInternal) throws SecurityException { JavaClassDesc classDesc = JavaClassDesc.forClass(clazz); EconomicSet<String> names = EconomicSet.create(); names.addAll(classDesc.getFieldNames(onlyStatic)); names.addAll(classDesc.getMethodNames(onlyStatic, includeInternal)); if (onlyStatic) { names.add("class"); if (Modifier.isPublic(clazz.getModifiers())) { // no support for non-static member types now for (Class<?> t : clazz.getClasses()) { if (!isStaticTypeOrInterface(t)) { continue; } names.add(t.getSimpleName()); } } } return names.toArray(new String[names.size()]); }
boolean internal = false; JavaClassDesc classDesc = JavaClassDesc.forClass(clazz); JavaMethodDesc foundMethod = classDesc.lookupMethod(name, onlyStatic); if (foundMethod != null) {