Package org.python.core
Class PyDataDescr
- java.lang.Object
-
- org.python.core.PyObject
-
- org.python.core.PyDescriptor
-
- org.python.core.PyDataDescr
-
- All Implemented Interfaces:
java.io.Serializable
,Traverseproc
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
gcMonitorGlobal, TYPE
-
-
Constructor Summary
Constructors Constructor Description PyDataDescr(java.lang.String name, java.lang.Class ofType, java.lang.String doc)
This constructor does not initialize the type the descriptor belongs to. setType must be called before this descriptor can be used.PyDataDescr(PyType onType, java.lang.String name, java.lang.Class ofType, java.lang.String doc)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
__delete__(PyObject obj)
PyObject
__get__(PyObject obj, PyObject type)
Get descriptor for this PyObject.void
__set__(PyObject obj, PyObject value)
java.lang.String
getDoc()
java.lang.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 java.lang.Object
invokeGet(PyObject obj)
void
invokeSet(PyObject obj, java.lang.Object converted)
boolean
isDataDescr()
void
setType(PyType onType)
Sets the type the descriptor belongs to.java.lang.String
toString()
-
Methods inherited from class org.python.core.PyDescriptor
refersDirectlyTo, traverse
-
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__, __ensure_finalizer__, __eq__, __findattr__, __findattr__, __findattr_ex__, __finditem__, __finditem__, __finditem__, __float__, __floordiv__, __format__, __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__, __trunc__, __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, bit_length, conjugate, delDict, delType, dispatch__init__, equals, fastGetClass, fastGetDict, getDict, getType, hashCode, implementsDescrDelete, implementsDescrGet, implementsDescrSet, invoke, invoke, invoke, invoke, invoke, invoke, isCallable, isIndex, isInteger, isMappingType, isNumberType, isSequenceType, noAttributeError, object___subclasshook__, readonlyAttributeError, setDict
-
-
-
-
Constructor Detail
-
PyDataDescr
public PyDataDescr(PyType onType, java.lang.String name, java.lang.Class ofType, java.lang.String doc)
- Parameters:
onType
- - the type the descriptor belongs toname
- - the name of the descriptor on descriptor typeofType
- - the type returned by the descriptor
-
PyDataDescr
public PyDataDescr(java.lang.String name, java.lang.Class ofType, java.lang.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 typeofType
- - the type returned by the descriptor
-
-
Method Detail
-
setType
public void setType(PyType onType)
Sets the type the descriptor belongs to.
-
__get__
public PyObject __get__(PyObject obj, PyObject type)
Description copied from class:PyObject
Get descriptor for this PyObject.- Overrides:
__get__
in classPyObject
- 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.
-
invokeGet
public abstract java.lang.Object invokeGet(PyObject obj)
-
invokeSet
public void invokeSet(PyObject obj, java.lang.Object converted)
-
__delete__
public void __delete__(PyObject obj)
- Overrides:
__delete__
in classPyObject
-
getset_descriptor___delete__
public void getset_descriptor___delete__(PyObject obj)
-
invokeDelete
public void invokeDelete(PyObject obj)
-
isDataDescr
public boolean isDataDescr()
- Overrides:
isDataDescr
in classPyObject
-
getDoc
public java.lang.String getDoc()
-
getName
public java.lang.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
-
-