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 }