org.python.core
Class PyStringMap

java.lang.Object
  extended by org.python.core.PyObject
      extended by org.python.core.PyStringMap
All Implemented Interfaces:
Serializable

public class PyStringMap
extends PyObject

Special fast dict implementation for __dict__ instances. Allows interned String keys in addition to PyObject unlike PyDictionary.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.python.core.PyObject
PyObject.ConversionException
 
Field Summary
 
Fields inherited from class org.python.core.PyObject
TYPE
 
Constructor Summary
PyStringMap()
           
PyStringMap(int capacity)
           
PyStringMap(Map<Object,PyObject> map)
           
PyStringMap(PyObject[] elements)
           
 
Method Summary
 int __cmp__(PyObject other)
          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.
 void __delitem__(String key)
          A variant of the __delitem__ method which accepts a String as the key.
 PyObject __finditem__(PyObject key)
          Very similar to the standard Python __getitem__ method.
 PyObject __finditem__(String key)
          A variant of the __finditem__ method which accepts a Java String as the key.
 PyObject __getitem__(PyObject key)
          Equivalent to the standard Python __getitem__ method.
 PyObject __getitem__(String key)
           
 PyObject __iter__()
          Return an iterator that is used to iterate the element of this sequence.
 int __len__()
          Equivalent to the standard Python __len__ method.
 boolean __nonzero__()
          Equivalent to the standard Python __nonzero__ method.
 void __setitem__(PyObject key, PyObject value)
          Equivalent to the standard Python __setitem__ method.
 void __setitem__(String key, PyObject value)
          A variant of the __setitem__ method which accepts a String as the key.
 void clear()
          Remove all items from the dictionary.
 PyStringMap copy()
          Return a shallow copy of the dictionary.
 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.
 boolean has_key(PyObject key)
           
 boolean has_key(String key)
          Return true if the key exist in the dictionary.
 int hashCode()
           
 boolean isMappingType()
           
 boolean isSequenceType()
           
 PyList items()
          Return a copy of the mappings list of (key, value) tuple pairs.
 PyObject iteritems()
          return an iterator over (key, value) pairs
 PyObject iterkeys()
          return an iterator over the keys
 PyObject itervalues()
          return an iterator over the values
 PyList keys()
          Return a copy of the mappings list of keys.
 PyObject pop(PyObject key)
           
 PyObject pop(PyObject key, PyObject failobj)
           
 PyObject popitem()
          Return a random (key, value) tuple pair and remove the pair from the mapping.
 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
 String toString()
           
 void update(PyObject other)
           
 PyList values()
          Return a copy of the mappings list of 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__, __delslice__, __delslice__, __dir__, __div__, __divmod__, __eq__, __findattr__, __findattr__, __findattr_ex__, __finditem__, __float__, __floordiv__, __ge__, __get__, __getattr__, __getattr__, __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__, __ne__, __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__, __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__, equals, fastGetClass, fastGetDict, getDict, getType, implementsDescrDelete, 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
 

Constructor Detail

PyStringMap

public PyStringMap()

PyStringMap

public PyStringMap(int capacity)

PyStringMap

public PyStringMap(Map<Object,PyObject> map)

PyStringMap

public PyStringMap(PyObject[] elements)
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__(String key)
Description copied from class: PyObject
A variant of the __finditem__ method which accepts a Java String 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. Warning: key must be an interned string!!!!!!!!

Overrides:
__finditem__ in class PyObject
Parameters:
key - the key to lookup in this sequence - must be an interned string .
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

__getitem__

public PyObject __getitem__(String key)

__getitem__

public PyObject __getitem__(PyObject key)
Description copied from class: PyObject
Equivalent to the standard Python __getitem__ method. This method should not be overridden. Override the __finditem__ method instead.

Overrides:
__getitem__ in class PyObject
Parameters:
key - the key to lookup in this container.
Returns:
the value corresponding to that key.
See Also:
PyObject.__finditem__(PyObject)

__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

__setitem__

public void __setitem__(String key,
                        PyObject value)
Description copied from class: PyObject
A variant of the __setitem__ method which accepts a String as the key. This String must be interned. By default, this will call __setitem__(PyObject key, PyObject value) with the appropriate args. The only reason to override this method is for performance.

Overrides:
__setitem__ in class PyObject
Parameters:
key - the key whose value will be set - must be an interned string .
value - the value to set this key to
See Also:
PyObject.__setitem__(PyObject, PyObject)

__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__(String key)
Description copied from class: PyObject
A variant of the __delitem__ method which accepts a String as the key. This String must be interned. By default, this will call __delitem__(PyObject key) with the appropriate args. The only reason to override this method is for performance.

Overrides:
__delitem__ in class PyObject
Parameters:
key - the key who will be removed - must be an interned string .
See Also:
PyObject.__delitem__(PyObject)

__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

clear

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


toString

public String toString()
Overrides:
toString in class PyObject

__cmp__

public int __cmp__(PyObject other)
Description copied from class: PyObject
Equivalent to the standard Python __cmp__ method.

Overrides:
__cmp__ in class PyObject
Parameters:
other - 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(String key)
Return true if the key exist in the dictionary.


has_key

public boolean has_key(PyObject key)

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

copy

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


update

public void update(PyObject other)

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

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 mapping.
failobj - the default value to insert in the mapping if key does not already exist.

popitem

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


pop

public PyObject pop(PyObject key)

pop

public PyObject pop(PyObject key,
                    PyObject failobj)

items

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


keys

public PyList keys()
Return a copy of the mappings list of keys. We have to take in account that we could be storing String or PyObject objects


values

public PyList values()
Return a copy of the mappings list of values.


iteritems

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


iterkeys

public PyObject iterkeys()
return an iterator over the keys


itervalues

public PyObject itervalues()
return an iterator over the values


hashCode

public int hashCode()
Overrides:
hashCode in class PyObject

isMappingType

public boolean isMappingType()
Overrides:
isMappingType in class PyObject

isSequenceType

public boolean isSequenceType()
Overrides:
isSequenceType in class PyObject


Jython homepage