@Override public PyObject __finditem__(PyObject key) { return getMap().get(key); }
@Override public boolean __nonzero__() { return getMap().size() != 0; }
/** @see java.util.Map#isEmpty() */ public boolean isEmpty() { return getMap().isEmpty(); }
/** @see java.util.Map#size() */ public int size() { return getMap().size(); }
/** * Create a new dictionary which is populated with entries the given map. */ public PyDictionary(PyType type, Map<PyObject, PyObject> map) { this(type, Math.max((int) (map.size() / Generic.CHM_LOAD_FACTOR) + 1, Generic.CHM_INITIAL_CAPACITY)); getMap().putAll(map); }
@ExposedMethod(defaults = "Py.None", doc = BuiltinDocs.dict_setdefault_doc) final PyObject dict_setdefault(PyObject key, PyObject failobj) { PyObject oldValue = getMap().putIfAbsent(key, failobj); return oldValue == null ? failobj : oldValue; }
/** @see java.util.Map#keySet() */ public Set keySet() { return new PyMapKeyValSet(getMap().keySet()); }
@ExposedMethod(defaults = "Py.None", doc = BuiltinDocs.dict_get_doc) final PyObject dict_get(PyObject key, PyObject defaultObj) { PyObject o = getMap().get(key); return o == null ? defaultObj : o; }
@ExposedMethod(defaults = "Py.None") final PyObject dict_setifabsent(PyObject key, PyObject failobj) { PyObject oldValue = getMap().putIfAbsent(key, failobj); return oldValue == null ? Py.None : oldValue; }
@ExposedMethod(doc = BuiltinDocs.dict___setitem___doc) final void dict___setitem__(PyObject key, PyObject value) { getMap().put(key, value); }
/** @see java.util.Map#putAll(Map map) */ public void putAll(Map map) { for (Object o : map.entrySet()) { Entry entry = (Entry)o; getMap().put(Py.java2py(entry.getKey()), Py.java2py(entry.getValue())); } }
@ExposedMethod(doc = BuiltinDocs.dict_popitem_doc) final PyObject dict_popitem() { Iterator<Entry<PyObject, PyObject>> it = getMap().entrySet().iterator(); if (!it.hasNext()) { throw Py.KeyError("popitem(): dictionary is empty"); } Entry<PyObject, PyObject> entry = it.next(); PyTuple tuple = new PyTuple(entry.getKey(), entry.getValue()); it.remove(); return tuple; }
@ExposedMethod(doc = BuiltinDocs.set___iter___doc) final PyObject dict_values___iter__() { return new ValuesIter(dvDict.getMap().values()); }
@ExposedMethod(doc = BuiltinDocs.set___iter___doc) final PyObject dict_items___iter__() { return new ItemsIter(dvDict.getMap().entrySet()); }
@ExposedMethod(doc = BuiltinDocs.dict_iterkeys_doc) final PyObject dict_iterkeys() { return new ValuesIter(getMap().keySet()); }
@ExposedMethod(doc = BuiltinDocs.dict___delitem___doc) final void dict___delitem__(PyObject key) { Object ret = getMap().remove(key); if (ret == null) { throw Py.KeyError(key.toString()); } }
private void merge(PyObject other) { if (other instanceof PyDictionary) { jmap.putAll(((PyDictionary) other).getMap()); } else if (other instanceof PyStringMap) { mergeFromKeys(other, ((PyStringMap) other).keys()); } else { mergeFromKeys(other, other.invoke("keys")); } }