package sun.jvm.hotspot.utilities.soql.wrapper; import java.util.Arrays; import jdk.dynalink.beans.StaticClass; import jdk.nashorn.api.scripting.AbstractJSObject; public class JSObjectClassWrapper extends AbstractJSObject{ private final Class clazz; public JSObjectClassWrapper(Object clazz){ StaticClass staticClass = (StaticClass)clazz; this.clazz = staticClass.getRepresentedClass(); } @Override public Object getMember(String name){ var method = Arrays.stream(clazz.getMethods()) .filter(m -> m.getName().equals(name)) .findFirst() .get(); return new JSObjectMethodWrapper(clazz, method); } @Override public boolean hasMember(String name){ return Arrays.stream(clazz.getMethods()) .anyMatch(m -> m.getName().equals(name)); } }