1 package sun.jvm.hotspot.utilities.soql.wrapper; 2 3 import java.lang.reflect.Method; 4 import java.util.Arrays; 5 import jdk.nashorn.api.scripting.AbstractJSObject; 6 7 8 public class JSObjectInstanceWrapper extends AbstractJSObject{ 9 10 private final Object thisObj; 11 12 private final Method[] methods; 13 14 public JSObjectInstanceWrapper(Object thisObj){ 15 this.thisObj = thisObj; 16 this.methods = thisObj.getClass().getMethods(); 17 } 18 19 @Override 20 public Object getMember(String name){ 21 var method = Arrays.stream(methods) 22 .filter(m -> m.getName().equals(name)) 23 .findFirst() 24 .get(); 25 return new JSObjectMethodWrapper(thisObj, method); 26 } 27 28 @Override 29 public boolean hasMember(String name){ 30 return Arrays.stream(methods) 31 .anyMatch(m -> m.getName().equals(name)); 32 } 33 34 }