< prev index next >

src/jdk/nashorn/api/scripting/ScriptObjectMirror.java

Print this page




 238     public boolean hasMember(final String name) {
 239         Objects.requireNonNull(name);
 240         return inGlobal(new Callable<Boolean>() {
 241             @Override public Boolean call() {
 242                 return sobj.has(name);
 243             }
 244         });
 245     }
 246 
 247     @Override
 248     public boolean hasSlot(final int slot) {
 249         return inGlobal(new Callable<Boolean>() {
 250             @Override public Boolean call() {
 251                 return sobj.has(slot);
 252             }
 253         });
 254     }
 255 
 256     @Override
 257     public void removeMember(final String name) {
 258         Objects.requireNonNull(name);
 259         remove(name);
 260     }
 261 
 262     @Override
 263     public void setMember(final String name, final Object value) {
 264         Objects.requireNonNull(name);
 265         put(name, value);
 266     }
 267 
 268     @Override
 269     public void setSlot(final int index, final Object value) {
 270         inGlobal(new Callable<Void>() {
 271             @Override public Void call() {
 272                 sobj.set(index, unwrap(value, global), getCallSiteFlags());
 273                 return null;
 274             }
 275         });
 276     }
 277 
 278     /**
 279      * Nashorn extension: setIndexedPropertiesToExternalArrayData.
 280      * set indexed properties be exposed from a given nio ByteBuffer.
 281      *
 282      * @param buf external buffer - should be a nio ByteBuffer
 283      */
 284     public void setIndexedPropertiesToExternalArrayData(final ByteBuffer buf) {
 285         inGlobal(new Callable<Void>() {


 412                 return Collections.unmodifiableSet(keySet);
 413             }
 414         });
 415     }
 416 
 417     @Override
 418     public Object put(final String key, final Object value) {
 419         checkKey(key);
 420         final ScriptObject oldGlobal = Context.getGlobal();
 421         final boolean globalChanged = (oldGlobal != global);
 422         return inGlobal(new Callable<Object>() {
 423             @Override public Object call() {
 424                 final Object modValue = globalChanged? wrapLikeMe(value, oldGlobal) : value;
 425                 return translateUndefined(wrapLikeMe(sobj.put(key, unwrap(modValue, global), strict)));
 426             }
 427         });
 428     }
 429 
 430     @Override
 431     public void putAll(final Map<? extends String, ? extends Object> map) {
 432         Objects.requireNonNull(map, "map is null");
 433         final ScriptObject oldGlobal = Context.getGlobal();
 434         final boolean globalChanged = (oldGlobal != global);
 435         inGlobal(new Callable<Object>() {
 436             @Override public Object call() {
 437                 for (final Map.Entry<? extends String, ? extends Object> entry : map.entrySet()) {
 438                     final Object value = entry.getValue();
 439                     final Object modValue = globalChanged? wrapLikeMe(value, oldGlobal) : value;
 440                     final String key = entry.getKey();
 441                     checkKey(key);
 442                     sobj.set(key, unwrap(modValue, global), getCallSiteFlags());
 443                 }
 444                 return null;
 445             }
 446         });
 447     }
 448 
 449     @Override
 450     public Object remove(final Object key) {
 451         checkKey(key);
 452         return inGlobal(new Callable<Object>() {




 238     public boolean hasMember(final String name) {
 239         Objects.requireNonNull(name);
 240         return inGlobal(new Callable<Boolean>() {
 241             @Override public Boolean call() {
 242                 return sobj.has(name);
 243             }
 244         });
 245     }
 246 
 247     @Override
 248     public boolean hasSlot(final int slot) {
 249         return inGlobal(new Callable<Boolean>() {
 250             @Override public Boolean call() {
 251                 return sobj.has(slot);
 252             }
 253         });
 254     }
 255 
 256     @Override
 257     public void removeMember(final String name) {
 258         remove(Objects.requireNonNull(name));

 259     }
 260 
 261     @Override
 262     public void setMember(final String name, final Object value) {
 263         put(Objects.requireNonNull(name), value);

 264     }
 265 
 266     @Override
 267     public void setSlot(final int index, final Object value) {
 268         inGlobal(new Callable<Void>() {
 269             @Override public Void call() {
 270                 sobj.set(index, unwrap(value, global), getCallSiteFlags());
 271                 return null;
 272             }
 273         });
 274     }
 275 
 276     /**
 277      * Nashorn extension: setIndexedPropertiesToExternalArrayData.
 278      * set indexed properties be exposed from a given nio ByteBuffer.
 279      *
 280      * @param buf external buffer - should be a nio ByteBuffer
 281      */
 282     public void setIndexedPropertiesToExternalArrayData(final ByteBuffer buf) {
 283         inGlobal(new Callable<Void>() {


 410                 return Collections.unmodifiableSet(keySet);
 411             }
 412         });
 413     }
 414 
 415     @Override
 416     public Object put(final String key, final Object value) {
 417         checkKey(key);
 418         final ScriptObject oldGlobal = Context.getGlobal();
 419         final boolean globalChanged = (oldGlobal != global);
 420         return inGlobal(new Callable<Object>() {
 421             @Override public Object call() {
 422                 final Object modValue = globalChanged? wrapLikeMe(value, oldGlobal) : value;
 423                 return translateUndefined(wrapLikeMe(sobj.put(key, unwrap(modValue, global), strict)));
 424             }
 425         });
 426     }
 427 
 428     @Override
 429     public void putAll(final Map<? extends String, ? extends Object> map) {
 430         Objects.requireNonNull(map);
 431         final ScriptObject oldGlobal = Context.getGlobal();
 432         final boolean globalChanged = (oldGlobal != global);
 433         inGlobal(new Callable<Object>() {
 434             @Override public Object call() {
 435                 for (final Map.Entry<? extends String, ? extends Object> entry : map.entrySet()) {
 436                     final Object value = entry.getValue();
 437                     final Object modValue = globalChanged? wrapLikeMe(value, oldGlobal) : value;
 438                     final String key = entry.getKey();
 439                     checkKey(key);
 440                     sobj.set(key, unwrap(modValue, global), getCallSiteFlags());
 441                 }
 442                 return null;
 443             }
 444         });
 445     }
 446 
 447     @Override
 448     public Object remove(final Object key) {
 449         checkKey(key);
 450         return inGlobal(new Callable<Object>() {


< prev index next >