org.python.core
Class PyDataDescr

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

public abstract class PyDataDescr
extends PyDescriptor

Implements type checking and return type coercion for a data descriptor. A subclass must at least implement invokeGet which is called in __get__ operations. If the descriptor supports setting and deleting, the subclass must also override invokeSet and invokeDel respectively. When implementing those methods, their respective implementsDescr* methods should be overriden as well.

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
PyDataDescr(PyType onType, String name, Class ofType, String doc)
           
PyDataDescr(String name, Class ofType, String doc)
          This constructor does not initialize the type the descriptor belongs to. setType must be called before this descriptor can be used.
 
Method Summary
 void __delete__(PyObject obj)
           
 PyObject __get__(PyObject obj, PyObject type)
          Get descriptor for this PyObject.
 void __set__(PyObject obj, PyObject value)
           
 String getDoc()
           
 String getName()
          Return the name this descriptor is exposed as.
 PyObject getObjClass()
          Return the owner class of this descriptor.
 void getset_descriptor___delete__(PyObject obj)
           
 PyObject getset_descriptor___get__(PyObject obj, PyObject type)
           
 void getset_descriptor___set__(PyObject obj, PyObject value)
           
 void invokeDelete(PyObject obj)
           
abstract  Object invokeGet(PyObject obj)
           
 void invokeSet(PyObject obj, Object converted)
           
 boolean isDataDescr()
           
 void setType(PyType onType)
          Sets the type the descriptor belongs to.
 String toString()
           
 
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__, __cmp__, __coerce__, __coerce_ex__, __complex__, __contains__, __delattr__, __delattr__, __delitem__, __delitem__, __delslice__, __delslice__, __dir__, __div__, __divmod__, __eq__, __findattr__, __findattr__, __findattr_ex__, __finditem__, __finditem__, __finditem__, __float__, __floordiv__, __ge__, __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__, __iter__, __iternext__, __itruediv__, __ixor__, __le__, __len__, __long__, __lshift__, __lt__, __mod__, __mul__, __ne__, __neg__, __nonzero__, __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__, __setattr__, __setattr__, __setitem__, __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__, equals, fastGetClass, fastGetDict, getDict, getType, hashCode, implementsDescrDelete, implementsDescrSet, invoke, invoke, invoke, invoke, invoke, invoke, isCallable, isIndex, isMappingType, isNumberType, isSequenceType, noAttributeError, readonlyAttributeError, setDict
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PyDataDescr

public PyDataDescr(PyType onType,
                   String name,
                   Class ofType,
                   String doc)
Parameters:
onType - - the type the descriptor belongs to
name - - the name of the descriptor on descriptor type
ofType - - the type returned by the descriptor

PyDataDescr

public PyDataDescr(String name,
                   Class ofType,
                   String doc)
This constructor does not initialize the type the descriptor belongs to. setType must be called before this descriptor can be used.

Parameters:
name - - the name of the descriptor on descriptor type
ofType - - the type returned by the descriptor
Method Detail

setType

public void setType(PyType onType)
Sets the type the descriptor belongs to.

Overrides:
setType in class PyObject

__get__

public PyObject __get__(PyObject obj,
                        PyObject type)
Description copied from class: PyObject
Get descriptor for this PyObject.

Overrides:
__get__ in class PyObject
Parameters:
obj - - the instance accessing this descriptor. Can be null if this is being accessed by a type.
type - - the type accessing this descriptor. Will be null if obj exists as obj is of the type accessing the descriptor.
Returns:
- the object defined for this descriptor for the given obj and type.

getset_descriptor___get__

public PyObject getset_descriptor___get__(PyObject obj,
                                          PyObject type)

invokeGet

public abstract Object invokeGet(PyObject obj)

__set__

public void __set__(PyObject obj,
                    PyObject value)
Overrides:
__set__ in class PyObject

getset_descriptor___set__

public void getset_descriptor___set__(PyObject obj,
                                      PyObject value)

invokeSet

public void invokeSet(PyObject obj,
                      Object converted)

__delete__

public void __delete__(PyObject obj)
Overrides:
__delete__ in class PyObject

getset_descriptor___delete__

public void getset_descriptor___delete__(PyObject obj)

invokeDelete

public void invokeDelete(PyObject obj)

isDataDescr

public boolean isDataDescr()
Overrides:
isDataDescr in class PyObject

toString

public String toString()
Overrides:
toString in class PyObject

getDoc

public String getDoc()

getName

public String getName()
Return the name this descriptor is exposed as.

Returns:
a name String

getObjClass

public PyObject getObjClass()
Return the owner class of this descriptor.

Returns:
this descriptor's owner


Jython homepage