Class PyDictionary

    • Field Detail

      • TYPE

        public static final PyType TYPE
    • Constructor Detail

      • PyDictionary

        public PyDictionary()
        Create an empty dictionary.
      • PyDictionary

        public PyDictionary​(PyType type,
                            int capacity)
        Create a dictionary of type with the specified initial capacity.
      • PyDictionary

        public PyDictionary​(PyType type)
        For derived types
      • PyDictionary

        public PyDictionary​(java.util.Map<PyObject,​PyObject> map)
        Create a new dictionary which is based on given map.
      • PyDictionary

        public PyDictionary​(java.util.concurrent.ConcurrentMap<PyObject,​PyObject> backingMap,
                            boolean useBackingMap)
      • PyDictionary

        public PyDictionary​(PyType type,
                            java.util.concurrent.ConcurrentMap<PyObject,​PyObject> backingMap,
                            boolean useBackingMap)
      • PyDictionary

        public PyDictionary​(PyType type,
                            java.util.Map<PyObject,​PyObject> map)
        Create a new dictionary which is populated with entries the given map.
      • PyDictionary

        public PyDictionary​(PyObject[] elements)
        Create a new dictionary with the element as content.
        Parameters:
        elements - The initial elements that is inserted in the dictionary. Even numbered elements are keys, odd numbered elements are values.
    • Method Detail

      • __len__

        public int __len__()
        Description copied from class: PyObject
        Equivalent to the standard Python __len__ method. Part of the mapping discipline.
        Overrides:
        __len__ in class PyObject
        Returns:
        the length of the object
      • __nonzero__

        public boolean __nonzero__()
        Description copied from class: PyObject
        Equivalent to the standard Python __nonzero__ method. Returns whether of not a given PyObject is considered true.
        Overrides:
        __nonzero__ in class PyObject
      • __finditem__

        public PyObject __finditem__​(int index)
        Description copied from class: PyObject
        A variant of the __finditem__ method which accepts a primitive int as the key. By default, this method will call __finditem__(PyObject key) with the appropriate args. The only reason to override this method is for performance.
        Overrides:
        __finditem__ in class PyObject
        Parameters:
        index - the key to lookup in this sequence.
        Returns:
        the value corresponding to key or null if key is not found.
        See Also:
        PyObject.__finditem__(PyObject)
      • __finditem__

        public PyObject __finditem__​(PyObject key)
        Description copied from class: PyObject
        Very similar to the standard Python __getitem__ method. Instead of throwing a KeyError if the item isn't found, this just returns null. Classes that wish to implement __getitem__ should override this method instead (with the appropriate semantics.
        Overrides:
        __finditem__ in class PyObject
        Parameters:
        key - the key to lookup in this container
        Returns:
        the value corresponding to key or null if key is not found
      • __setitem__

        public void __setitem__​(PyObject key,
                                PyObject value)
        Description copied from class: PyObject
        Equivalent to the standard Python __setitem__ method.
        Overrides:
        __setitem__ in class PyObject
        Parameters:
        key - the key whose value will be set
        value - the value to set this key to
      • __delitem__

        public void __delitem__​(PyObject key)
        Description copied from class: PyObject
        Equivalent to the standard Python __delitem__ method.
        Overrides:
        __delitem__ in class PyObject
        Parameters:
        key - the key to be removed from the container
      • __iter__

        public PyObject __iter__()
        Description copied from class: PyObject
        Return an iterator that is used to iterate the element of this sequence. From version 2.2, this method is the primary protocol for looping over sequences.

        If a PyObject subclass should support iteration based in the __finditem__() method, it must supply an implementation of __iter__() like this:

         public PyObject __iter__() {
             return new PySequenceIter(this);
         }
         
        When iterating over a python sequence from java code, it should be done with code like this:
         for (PyObject item : seq.asIterable()) {
             // Do somting with item
         }
         
        Overrides:
        __iter__ in class PyObject
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class PyObject
      • __eq__

        public PyObject __eq__​(PyObject otherObj)
        Description copied from class: PyObject
        Equivalent to the standard Python __eq__ method.
        Overrides:
        __eq__ in class PyObject
        Parameters:
        otherObj - the object to compare this with.
        Returns:
        the result of the comparison.
      • __ne__

        public PyObject __ne__​(PyObject otherObj)
        Description copied from class: PyObject
        Equivalent to the standard Python __ne__ method.
        Overrides:
        __ne__ in class PyObject
        Parameters:
        otherObj - the object to compare this with.
        Returns:
        the result of the comparison.
      • __cmp__

        public int __cmp__​(PyObject otherObj)
        Description copied from class: PyObject
        Equivalent to the standard Python __cmp__ method.
        Overrides:
        __cmp__ in class PyObject
        Parameters:
        otherObj - the object to compare this with.
        Returns:
        -1 if this < o; 0 if this == o; +1 if this > o; -2 if no comparison is implemented
      • has_key

        public boolean has_key​(PyObject key)
        Return true if the key exist in the dictionary.
        Specified by:
        has_key in class AbstractDict
      • __contains__

        public boolean __contains__​(PyObject o)
        Description copied from class: PyObject
        Equivalent to the standard Python __contains__ method.
        Overrides:
        __contains__ in class PyObject
        Parameters:
        o - the element to search for in this container.
        Returns:
        the result of the search.
      • get

        public PyObject get​(PyObject key,
                            PyObject defaultObj)
        Return this[key] if the key exists in the mapping, defaultObj is returned otherwise.
        Specified by:
        get in class AbstractDict
        Parameters:
        key - the key to lookup in the dictionary.
        defaultObj - the value to return if the key does not exists in the mapping.
      • get

        public PyObject get​(PyObject key)
        Return this[key] if the key exists in the mapping, None is returned otherwise.
        Specified by:
        get in class AbstractDict
        Parameters:
        key - the key to lookup in the dictionary.
      • clear

        public void clear()
        Remove all items from the dictionary.
        Specified by:
        clear in interface java.util.Map
        Specified by:
        clear in class AbstractDict
      • update

        public void update​(PyObject other)
        Insert all the key:value pairs from d into this dictionary.
        Specified by:
        update in class AbstractDict
      • updateCommon

        public void updateCommon​(PyObject[] args,
                                 java.lang.String[] keywords,
                                 java.lang.String methName)
      • merge

        public void merge​(PyObject other,
                          boolean override)
        Merge another PyObject that supports keys() with this dict.
        Specified by:
        merge in class AbstractDict
        Parameters:
        other - a PyObject with a keys() method
        override - if true, the value from other is used on key-collision
      • mergeFromKeys

        public void mergeFromKeys​(PyObject other,
                                  PyObject keys,
                                  boolean override)
        Merge another PyObject via its keys() method
        Specified by:
        mergeFromKeys in class AbstractDict
        Parameters:
        other - a PyObject with a keys() method
        keys - the result of other's keys() method
        override - if true, the value from other is used on key-collision
      • mergeFromSeq

        public void mergeFromSeq​(PyObject other,
                                 boolean override)
        Merge any iterable object producing iterable objects of length 2 into this dict.
        Specified by:
        mergeFromSeq in class AbstractDict
        Parameters:
        other - another PyObject
        override - if true, the value from other is used on key-collision
      • setdefault

        public PyObject setdefault​(PyObject key)
        Return this[key] if the key exist, otherwise insert key with a None value and return None.
        Specified by:
        setdefault in class AbstractDict
        Parameters:
        key - the key to lookup in the dictionary.
      • setdefault

        public PyObject setdefault​(PyObject key,
                                   PyObject failobj)
        Return this[key] if the key exist, otherwise insert key with the value of failobj and return failobj
        Specified by:
        setdefault in class AbstractDict
        Parameters:
        key - the key to lookup in the dictionary.
        failobj - the default value to insert in the dictionary if key does not already exist.
      • pop

        public PyObject pop​(PyObject key,
                            PyObject defaultValue)
        Return a value based on key from the dictionary or default if that key is not found.
        Specified by:
        pop in class AbstractDict
      • popitem

        public PyObject popitem()
        Return a random (key, value) tuple pair and remove the pair from the dictionary.
        Specified by:
        popitem in class AbstractDict
      • items

        public PyList items()
        Return a copy of the dictionary's list of (key, value) tuple pairs.
        Specified by:
        items in class AbstractDict
      • keys

        public PyList keys()
        Return a copy of the dictionary's list of keys.
        Specified by:
        keys in class AbstractDict
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface java.util.Map
        Overrides:
        hashCode in class PyObject
      • equals

        public boolean equals​(java.lang.Object obj)
        Description copied from class: PyObject
        Should almost never be overridden. If overridden, it is the subclasses responsibility to ensure that a.equals(b) == true iff cmp(a,b) == 0
        Specified by:
        equals in interface java.util.Map
        Overrides:
        equals in class PyObject
      • entrySet

        public java.util.Set entrySet()
        Specified by:
        entrySet in interface java.util.Map
        Specified by:
        entrySet in class AbstractDict
        See Also:
        Map.entrySet()
      • keySet

        public java.util.Set keySet()
        Specified by:
        keySet in interface java.util.Map
        See Also:
        Map.keySet()
      • values

        public java.util.Collection values()
        Specified by:
        values in interface java.util.Map
        Specified by:
        values in class AbstractDict
        See Also:
        Map.values()
      • putAll

        public void putAll​(java.util.Map map)
        Specified by:
        putAll in interface java.util.Map
        See Also:
        Map.putAll(Map map)
      • remove

        public java.lang.Object remove​(java.lang.Object key)
        Specified by:
        remove in interface java.util.Map
        See Also:
        Map.remove(Object key)
      • put

        public java.lang.Object put​(java.lang.Object key,
                                    java.lang.Object value)
        Specified by:
        put in interface java.util.Map
        See Also:
        Map.put(Object key, Object value)
      • get

        public java.lang.Object get​(java.lang.Object key)
        Specified by:
        get in interface java.util.Map
        See Also:
        Map.get(Object key)
      • containsValue

        public boolean containsValue​(java.lang.Object value)
        Specified by:
        containsValue in interface java.util.Map
        See Also:
        Map.containsValue(Object key)
      • containsKey

        public boolean containsKey​(java.lang.Object key)
        Specified by:
        containsKey in interface java.util.Map
        See Also:
        Map.containsValue(Object key)
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface java.util.Map
        See Also:
        Map.isEmpty()
      • size

        public int size()
        Specified by:
        size in interface java.util.Map
        See Also:
        Map.size()
      • putIfAbsent

        public java.lang.Object putIfAbsent​(java.lang.Object key,
                                            java.lang.Object value)
        Specified by:
        putIfAbsent in interface java.util.concurrent.ConcurrentMap
        Specified by:
        putIfAbsent in interface java.util.Map
      • remove

        public boolean remove​(java.lang.Object key,
                              java.lang.Object value)
        Specified by:
        remove in interface java.util.concurrent.ConcurrentMap
        Specified by:
        remove in interface java.util.Map
      • replace

        public boolean replace​(java.lang.Object key,
                               java.lang.Object oldValue,
                               java.lang.Object newValue)
        Specified by:
        replace in interface java.util.concurrent.ConcurrentMap
        Specified by:
        replace in interface java.util.Map
      • replace

        public java.lang.Object replace​(java.lang.Object key,
                                        java.lang.Object value)
        Specified by:
        replace in interface java.util.concurrent.ConcurrentMap
        Specified by:
        replace in interface java.util.Map