Class AbstractJythonSequence
java.lang.Object
org.python.core.PyObject
org.python.core.PySequence
com.inductiveautomation.ignition.common.script.abc.AbstractJythonSequence
- All Implemented Interfaces:
JythonSequence
,Serializable
- Direct Known Subclasses:
AbstractMutableJythonSequence
,DatasetUtilities.PyDataSet
,DatasetUtilities.PyDataSet.PyRow
,Results.PyWrapper
public abstract class AbstractJythonSequence
extends org.python.core.PySequence
implements JythonSequence
Base class to pretend to be a Jython "sequence", aka a Pythonic list. If you don't want to implement a
method, leave it a no-op but add
PyIgnoreMethodTag
to the throws declaration, which will prevent it from
being exposed to Jython.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.python.core.PySequence
org.python.core.PySequence.DefaultIndexDelegate
Nested classes/interfaces inherited from class org.python.core.PyObject
org.python.core.PyObject.ConversionException
-
Field Summary
Fields inherited from class org.python.core.PySequence
delegator
Fields inherited from class org.python.core.PyObject
attributes, gcMonitorGlobal, objtype, TYPE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract org.python.core.PyObject
__add__
(org.python.core.PyObject other) org.python.core.PyObject
__mul__
(org.python.core.PyObject other) Override to allow this sequence to work with the*
operator.org.python.core.PyString
__repr__()
org.python.core.PyObject
__rmul__
(org.python.core.PyObject other) Override to allow extending.org.python.core.PyString
__str__()
protected org.python.core.PyObject
getslice
(int start, int stop, int step) Retrieve a 'slice' of this sequence; fromstart
(inclusive) tostop
(exclusive), stepping bystep
.boolean
boolean
boolean
protected abstract org.python.core.PyObject
pyget
(int index) protected abstract org.python.core.PyObject
repeat
(int count) Implements the repeat operation, which is used by Jython when performingsequence * count
, which returns a new list containing sequence * count items.protected abstract List<? extends org.python.core.PyObject>
sublist
(int start, int stop) Retrieve a subset of this sequence, fromstart
(inclusive) tostop
(exclusive).toString()
Methods inherited from class org.python.core.PySequence
__delitem__, __delslice__, __eq__, __finditem__, __finditem__, __ge__, __getitem__, __getslice__, __gt__, __iter__, __le__, __lt__, __ne__, __nonzero__, __setitem__, __setitem__, __setslice__, __tojava__, boundToSequence, cmp, del, delRange, delslice, fastSequence, isSubType, pyset, runsupportedopMessage, setslice, sliceLength, unsupportedopMessage
Methods inherited from class org.python.core.PyObject
__abs__, __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__, __delete__, __delitem__, __delslice__, __dir__, __div__, __divmod__, __ensure_finalizer__, __findattr__, __findattr__, __findattr_ex__, __finditem__, __float__, __floordiv__, __format__, __get__, __getattr__, __getattr__, __getitem__, __getnewargs__, __getslice__, __hash__, __hex__, __iadd__, __iand__, __idiv__, __idivmod__, __ifloordiv__, __ilshift__, __imod__, __imul__, __index__, __int__, __invert__, __ior__, __ipow__, __irshift__, __isub__, __iternext__, __itruediv__, __ixor__, __len__, __long__, __lshift__, __mod__, __neg__, __not__, __oct__, __or__, __pos__, __pow__, __pow__, __radd__, __rand__, __rawdir__, __rdiv__, __rdivmod__, __reduce__, __reduce_ex__, __reduce_ex__, __rfloordiv__, __rlshift__, __rmod__, __ror__, __rpow__, __rrshift__, __rshift__, __rsub__, __rtruediv__, __rxor__, __set__, __setattr__, __setattr__, __setitem__, __setslice__, __sub__, __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, _unsupportedop, _xor, adaptToCoerceTuple, asDouble, asIndex, asIndex, asInt, asInt, asIterable, asLong, asLong, asName, asName, asString, asString, asStringOrNull, asStringOrNull, bit_length, conjugate, delDict, delType, dispatch__init__, equals, fastGetClass, fastGetDict, finalize, getDict, getJavaProxy, getType, hashCode, impAttr, implementsDescrDelete, implementsDescrGet, implementsDescrSet, invoke, invoke, invoke, invoke, invoke, invoke, isCallable, isDataDescr, isIndex, isInteger, mergeClassDict, mergeDictAttr, mergeListAttr, noAttributeError, object___subclasshook__, readonlyAttributeError, setDict, setType
Methods inherited from interface com.inductiveautomation.ignition.common.script.abc.JythonSequence
__contains__, __iter__, __len__, count, index
-
Constructor Details
-
AbstractJythonSequence
- Parameters:
clazz
- A reference to your implementing class - can't use getClass since the type is used in some Jython reflection stuff that happens on initialization.
-
-
Method Details
-
pyget
protected abstract org.python.core.PyObject pyget(int index) - Specified by:
pyget
in classorg.python.core.PySequence
-
getslice
protected org.python.core.PyObject getslice(int start, int stop, int step) Retrieve a 'slice' of this sequence; fromstart
(inclusive) tostop
(exclusive), stepping bystep
. Will delegate topyget(int)
andsublist(int, int)
, and handle negative indices appropriately.- Specified by:
getslice
in classorg.python.core.PySequence
- Returns:
- A new list from specified elements of the original sequence.
-
sublist
Retrieve a subset of this sequence, fromstart
(inclusive) tostop
(exclusive).- See Also:
-
repeat
protected abstract org.python.core.PyObject repeat(int count) Implements the repeat operation, which is used by Jython when performingsequence * count
, which returns a new list containing sequence * count items. If count is <= 0, returns an empty sequence, ideally of the same type.- Specified by:
repeat
in classorg.python.core.PySequence
- Parameters:
count
- The number of times to repeat the sequence in the output.
-
__add__
public abstract org.python.core.PyObject __add__(org.python.core.PyObject other) - Overrides:
__add__
in classorg.python.core.PyObject
-
__mul__
public org.python.core.PyObject __mul__(org.python.core.PyObject other) throws org.python.core.PyIgnoreMethodTag Description copied from interface:JythonSequence
Override to allow this sequence to work with the*
operator. Does not mutate this sequence.- Specified by:
__mul__
in interfaceJythonSequence
- Overrides:
__mul__
in classorg.python.core.PyObject
- Returns:
- the result of the mul, or
null
if this operation is not defined - Throws:
org.python.core.PyIgnoreMethodTag
-
__rmul__
public org.python.core.PyObject __rmul__(org.python.core.PyObject other) Description copied from interface:JythonSequence
Override to allow extending. This is distinct fromJythonSequence.__mul__(org.python.core.PyObject)
in that__rmul__
is called if the left operator in an multiplication expression doesn't support the given type - in that case, the right operator is given an opportunity to attempt the multiplication. Does not mutate this sequence.- Specified by:
__rmul__
in interfaceJythonSequence
- Overrides:
__rmul__
in classorg.python.core.PyObject
- Returns:
- the result of the mul, or
null
if this operation is not defined
-
isSequenceType
public boolean isSequenceType() throws org.python.core.PyIgnoreMethodTag- Overrides:
isSequenceType
in classorg.python.core.PySequence
- Throws:
org.python.core.PyIgnoreMethodTag
-
isMappingType
public boolean isMappingType() throws org.python.core.PyIgnoreMethodTag- Overrides:
isMappingType
in classorg.python.core.PySequence
- Throws:
org.python.core.PyIgnoreMethodTag
-
isNumberType
public boolean isNumberType() throws org.python.core.PyIgnoreMethodTag- Overrides:
isNumberType
in classorg.python.core.PySequence
- Throws:
org.python.core.PyIgnoreMethodTag
-
__repr__
public org.python.core.PyString __repr__()- Specified by:
__repr__
in interfaceJythonSequence
- Overrides:
__repr__
in classorg.python.core.PyObject
- Returns:
- a string containing a printable representation of this object. If practical, should match the evaluation
format of a Python list -
[item, item, item]
-
__str__
public org.python.core.PyString __str__()- Overrides:
__str__
in classorg.python.core.PyObject
-
toString
- Overrides:
toString
in classorg.python.core.PyObject
- Throws:
org.python.core.PyIgnoreMethodTag
-