@Override // NOTE: likely won't be called public RubyHashEntry internalDeleteEntry(final RubyHashEntry entry) { final Map map = mapDelegate(); Object convertedKey = ((IRubyObject) entry.getKey()).toJava(Object.class); if (map.containsKey(convertedKey)) { map.remove(convertedKey); setSize( map.size() ); return entry; } return NO_ENTRY; }
@Override public RubyHashEntry internalDelete(final IRubyObject key) { final Map map = mapDelegate(); Object convertedKey = key.toJava(Object.class); Object value = map.get(convertedKey); if (value != null) { map.remove(convertedKey); setSize( map.size() ); return new RubyHashEntry(key.hashCode(), key, JavaUtil.convertJavaToUsableRubyObject(getRuntime(), value), null, null); } return NO_ENTRY; }
@Override // NOTE: likely won't be called public RubyHashEntry internalDeleteEntry(final RubyHashEntry entry) { final Map map = mapDelegate(); Object convertedKey = ((IRubyObject) entry.getKey()).toJava(Object.class); if (map.containsKey(convertedKey)) { map.remove(convertedKey); setSize( map.size() ); return entry; } return NO_ENTRY; }
@Override protected final IRubyObject internalPutNoResize(IRubyObject key, IRubyObject value, boolean checkForExisting) { @SuppressWarnings("unchecked") Ruby runtime = getRuntime(); final Map<Object, Object> map = mapDelegate(); Object javaValue = value.toJava(Object.class); Object existing = map.put(key.toJava(Object.class), javaValue); setSize( map.size() ); if (existing != null) { if (existing == javaValue) return value; return JavaUtil.convertJavaToUsableRubyObject(runtime, existing); } // none existing return null; }
@Override protected final IRubyObject internalPutNoResize(IRubyObject key, IRubyObject value, boolean checkForExisting) { @SuppressWarnings("unchecked") Ruby runtime = getRuntime(); final Map<Object, Object> map = mapDelegate(); Object javaValue = value.toJava(Object.class); Object existing = map.put(key.toJava(Object.class), javaValue); setSize( map.size() ); if (existing != null) { if (existing == javaValue) return value; return JavaUtil.convertJavaToUsableRubyObject(runtime, existing); } // none existing return null; }
@Override public RubyHash rb_clear() { mapDelegate().clear(); setSize( 0 ); return this; }
@Override public RubyHashEntry internalDelete(final IRubyObject key) { final Map map = mapDelegate(); Object convertedKey = key.toJava(Object.class); Object value = map.get(convertedKey); if (value != null) { map.remove(convertedKey); setSize( map.size() ); return new RubyHashEntry(key.hashCode(), key, JavaUtil.convertJavaToUsableRubyObject(getRuntime(), value), null, null); } return NO_ENTRY; }
@Override protected final void op_asetForString(Ruby runtime, RubyString key, IRubyObject value) { @SuppressWarnings("unchecked") final Map<Object, Object> map = mapDelegate(); map.put(key.decodeString(), value.toJava(Object.class)); setSize( map.size() ); }
@Override public RubyHash delete_ifInternal(final ThreadContext context, final Block block) { RubyHash self = super.delete_ifInternal(context, block); setSize( mapDelegate().size() ); return self; }
@Override public RubyHash rb_clear() { mapDelegate().clear(); setSize( 0 ); return this; }
@Override public RubyHash delete_ifInternal(final ThreadContext context, final Block block) { RubyHash self = super.delete_ifInternal(context, block); setSize( mapDelegate().size() ); return self; }
@Override protected final void op_asetForString(Ruby runtime, RubyString key, IRubyObject value) { @SuppressWarnings("unchecked") final Map<Object, Object> map = mapDelegate(); map.put(key.decodeString(), value.toJava(Object.class)); setSize( map.size() ); }