org.python.core
Class PyDictionary

java.lang.Object
  extended by org.python.core.PyObject
      extended by org.python.core.PyDictionary
All Implemented Interfaces:
Serializable, ConcurrentMap, Map
Direct Known Subclasses:
PyDefaultDict, PyDictionaryDerived

public class PyDictionary
extends PyObject
implements ConcurrentMap

A builtin python dictionary.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.python.core.PyObject
PyObject.ConversionException
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Field Summary
static PyType TYPE
           
 
Constructor Summary
PyDictionary()
          Create an empty dictionary.
PyDictionary(Map<PyObject,PyObject> map)
          Create a new dictionary which is based on given map.
PyDictionary(PyObject[] elements)
          Create a new dictionary with the element as content.
PyDictionary(PyType type)
          For derived types
PyDictionary(PyType type, int capacity)
          Create a dictionary of type with the specified initial capacity.
PyDictionary(PyType type, Map<PyObject,PyObject> map)
          Create a new dictionary which is populated with entries the given map.
 
Method Summary
 int __cmp__(PyObject otherObj)
          Equivalent to the standard Python __cmp__ method.
 boolean __contains__(PyObject o)
          Equivalent to the standard Python __contains__ method.
 void __delitem__(PyObject key)
          Equivalent to the standard Python __delitem__ method.
 PyObject __eq__(PyObject otherObj)
          Equivalent to the standard Python __eq__ method.
 PyObject __finditem__(int index)
          A variant of the __finditem__ method which accepts a primitive int as the key.
 PyObject __finditem__(PyObject key)
          Very similar to the standard Python __getitem__ method.
 PyObject __iter__()
          Return an iterator that is used to iterate the element of this sequence.
 int __len__()
          Equivalent to the standard Python __len__ method.
 PyObject __ne__(PyObject otherObj)
          Equivalent to the standard Python __ne__ method.
 boolean __nonzero__()
          Equivalent to the standard Python __nonzero__ method.
 void __setitem__(PyObject key, PyObject value)
          Equivalent to the standard Python __setitem__ method.
 void clear()
          Remove all items from the dictionary.
 boolean containsKey(Object key)
           
 boolean containsValue(Object value)
           
 PyDictionary copy()
          Return a shallow copy of the dictionary.
 Set entrySet()
           
 boolean equals(Object obj)
          Should almost never be overridden.
static PyObject fromkeys(PyObject keys)
           
static PyObject fromkeys(PyObject keys, PyObject value)
           
 Object get(Object key)
           
 PyObject get(PyObject key)
          Return this[key] if the key exists in the mapping, None is returned otherwise.
 PyObject get(PyObject key, PyObject defaultObj)
          Return this[key] if the key exists in the mapping, defaultObj is returned otherwise.
 ConcurrentMap<PyObject,PyObject> getMap()
           
 boolean has_key(PyObject key)
          Return true if the key exist in the dictionary.
 int hashCode()
           
 boolean isEmpty()
           
 boolean isMappingType()
           
 boolean isSequenceType()
           
 PyList items()
          Return a copy of the dictionary's list of (key, value) tuple pairs.
 PyObject iteritems()
          Returns an iterator over (key, value) pairs.
 PyObject iterkeys()
          Returns an iterator over the dictionary's keys.
 PyObject itervalues()
          Returns an iterator over the dictionary's values.
 PyList keys()
          Return a copy of the dictionary's list of keys.
 Set keySet()
           
 PyObject pop(PyObject key)
          Return a value based on key from the dictionary.
 PyObject pop(PyObject key, PyObject defaultValue)
          Return a value based on key from the dictionary or default if that key is not found.
 PyObject popitem()
          Return a random (key, value) tuple pair and remove the pair from the dictionary.
 Object put(Object key, Object value)
           
 void putAll(Map map)
           
 Object putIfAbsent(Object key, Object value)
           
 Object remove(Object key)
           
 boolean remove(Object key, Object value)
           
 Object replace(Object key, Object value)
           
 boolean replace(Object key, Object oldValue, Object newValue)
           
 PyObject setdefault(PyObject key)
          Return this[key] if the key exist, otherwise insert key with a None value and return None.
 PyObject setdefault(PyObject key, PyObject failobj)
          Return this[key] if the key exist, otherwise insert key with the value of failobj and return failobj
 int size()
           
 String toString()
           
 void update(PyObject other)
          Insert all the key:value pairs from d into this dictionary.
 Collection values()
           
 
Methods inherited from class org.python.core.PyObject
__abs__, __add__, __and__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __coerce__, __coerce_ex__, __complex__, __delattr__, __delattr__, __delete__, __delitem__, __delslice__, __delslice__, __dir__, __div__, __divmod__, __findattr__, __findattr__, __findattr_ex__, __finditem__, __float__, __floordiv__, __ge__, __get__, __getattr__, __getattr__, __getitem__, __getitem__, __getnewargs__, __getslice__, __getslice__, __gt__, __hash__, __hex__, __iadd__, __iand__, __idiv__, __idivmod__, __ifloordiv__, __ilshift__, __imod__, __imul__, __index__, __int__, __invert__, __ior__, __ipow__, __irshift__, __isub__, __iternext__, __itruediv__, __ixor__, __le__, __long__, __lshift__, __lt__, __mod__, __mul__, __neg__, __not__, __oct__, __or__, __pos__, __pow__, __pow__, __radd__, __rand__, __rdiv__, __rdivmod__, __reduce__, __reduce_ex__, __reduce_ex__, __repr__, __rfloordiv__, __rlshift__, __rmod__, __rmul__, __ror__, __rpow__, __rrshift__, __rshift__, __rsub__, __rtruediv__, __rxor__, __set__, __setattr__, __setattr__, __setitem__, __setitem__, __setslice__, __setslice__, __str__, __sub__, __tojava__, __truediv__, __unicode__, __xor__, _add, _and, _callextra, _cmp, _div, _divmod, _doget, _doget, _doset, _eq, _floordiv, _ge, _gt, _iadd, _iand, _idiv, _idivmod, _ifloordiv, _ilshift, _imod, _imul, _in, _ior, _ipow, _irshift, _is, _isnot, _isub, _itruediv, _ixor, _jcall, _jcallexc, _jthrow, _le, _lshift, _lt, _mod, _mul, _ne, _notin, _or, _pow, _rshift, _sub, _truediv, _xor, asDouble, asIndex, asIndex, asInt, asInt, asIterable, asLong, asLong, asName, asName, asString, asString, asStringOrNull, asStringOrNull, delDict, delType, dispatch__init__, fastGetClass, fastGetDict, getDict, getType, implementsDescrDelete, implementsDescrGet, implementsDescrSet, invoke, invoke, invoke, invoke, invoke, invoke, isCallable, isDataDescr, isIndex, isNumberType, noAttributeError, readonlyAttributeError, setDict, setType
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

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(Map<PyObject,PyObject> map)
Create a new dictionary which is based on given map.


PyDictionary

public PyDictionary(PyType type,
                    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

getMap

public ConcurrentMap<PyObject,PyObject> getMap()

fromkeys

public static PyObject fromkeys(PyObject keys)

fromkeys

public static PyObject fromkeys(PyObject keys,
                                PyObject value)

__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 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.


__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.

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.

Parameters:
key - the key to lookup in the dictionary.

copy

public PyDictionary copy()
Return a shallow copy of the dictionary.


clear

public void clear()
Remove all items from the dictionary.

Specified by:
clear in interface Map

update

public void update(PyObject other)
Insert all the key:value pairs from d into this dictionary.


setdefault

public PyObject setdefault(PyObject key)
Return this[key] if the key exist, otherwise insert key with a None value and return None.

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

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)
Return a value based on key from the dictionary.


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.


popitem

public PyObject popitem()
Return a random (key, value) tuple pair and remove the pair from the dictionary.


items

public PyList items()
Return a copy of the dictionary's list of (key, value) tuple pairs.


keys

public PyList keys()
Return a copy of the dictionary's list of keys.


iteritems

public PyObject iteritems()
Returns an iterator over (key, value) pairs.


iterkeys

public PyObject iterkeys()
Returns an iterator over the dictionary's keys.


itervalues

public PyObject itervalues()
Returns an iterator over the dictionary's values.


hashCode

public int hashCode()
Specified by:
hashCode in interface Map
Overrides:
hashCode in class PyObject

equals

public boolean equals(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 Map
Overrides:
equals in class PyObject

isMappingType

public boolean isMappingType()
Overrides:
isMappingType in class PyObject

isSequenceType

public boolean isSequenceType()
Overrides:
isSequenceType in class PyObject

entrySet

public Set entrySet()
Specified by:
entrySet in interface Map
See Also:
Map.entrySet()

keySet

public Set keySet()
Specified by:
keySet in interface Map
See Also:
Map.keySet()

values

public Collection values()
Specified by:
values in interface Map
See Also:
Map.values()

putAll

public void putAll(Map map)
Specified by:
putAll in interface Map
See Also:
Map.putAll(Map map)

remove

public Object remove(Object key)
Specified by:
remove in interface Map
See Also:
Map.remove(Object key)

put

public Object put(Object key,
                  Object value)
Specified by:
put in interface Map
See Also:
Map.put(Object key, Object value)

get

public Object get(Object key)
Specified by:
get in interface Map
See Also:
Map.get(Object key)

containsValue

public boolean containsValue(Object value)
Specified by:
containsValue in interface Map
See Also:
Map.containsValue(Object key)

containsKey

public boolean containsKey(Object key)
Specified by:
containsKey in interface Map
See Also:
Map.containsValue(Object key)

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Map
See Also:
Map.isEmpty()

size

public int size()
Specified by:
size in interface Map
See Also:
Map.size()

putIfAbsent

public Object putIfAbsent(Object key,
                          Object value)
Specified by:
putIfAbsent in interface ConcurrentMap

remove

public boolean remove(Object key,
                      Object value)
Specified by:
remove in interface ConcurrentMap

replace

public boolean replace(Object key,
                       Object oldValue,
                       Object newValue)
Specified by:
replace in interface ConcurrentMap

replace

public Object replace(Object key,
                      Object value)
Specified by:
replace in interface ConcurrentMap


Jython homepage