Class AbstractMutableJythonSequence
java.lang.Object
org.python.core.PyObject
org.python.core.PySequence
com.inductiveautomation.ignition.common.script.abc.AbstractJythonSequence
com.inductiveautomation.ignition.common.script.abc.AbstractMutableJythonSequence
- All Implemented Interfaces:
JythonSequence
,MutableJythonSequence
,Serializable
- Direct Known Subclasses:
PropertyTreeScriptWrapper.ArrayWrapper
public abstract class AbstractMutableJythonSequence
extends AbstractJythonSequence
implements MutableJythonSequence
Base class to pretend to be a Jython "sequence", aka a Pythonic list. Should support slicing and, if applicable,
sorting. 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 TypeMethodDescriptionorg.python.core.PyObject
__imul__
(org.python.core.PyObject other) Deliberately stubbed - override if you want to implement the (uncommon)__imul__
operator.abstract void
append
(org.python.core.PyObject element) Addselement
to the end of the sequence.protected void
delslice
(int start, int stop, int step, int n) Deliberately stubbed - override if you want to implement slice deletion, a fairly uncommon Python operation:abstract void
extend
(org.python.core.PyObject sequence) Adds all elements fromsequence
to the end of the sequence.abstract void
insert
(int index, org.python.core.PyObject element) Addselement
to sequence at positionindex
.org.python.core.PyObject
pop()
Pops the last element off the sequence and returns it.abstract org.python.core.PyObject
pop
(int index) Pops the element atindex
off the sequence and returns it.protected abstract void
pyset
(int index, org.python.core.PyObject value) abstract void
remove
(org.python.core.PyObject element) Removeselement
from the sequence, if it exists.protected void
setslice
(int start, int stop, int step, org.python.core.PyObject value) Deliberately stubbed - override if you want to implement slice assignment, a fairly uncommon Python operation:void
Deliberately stubbed - override if you want to implement in-place sorting.Methods inherited from class com.inductiveautomation.ignition.common.script.abc.AbstractJythonSequence
__add__, __mul__, __repr__, __rmul__, __str__, getslice, isMappingType, isNumberType, isSequenceType, pyget, repeat, sublist, 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, fastSequence, isSubType, runsupportedopMessage, 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__, __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__, __mul__, __repr__, __rmul__, count, index
Methods inherited from interface com.inductiveautomation.ignition.common.script.abc.MutableJythonSequence
__add__
-
Constructor Details
-
AbstractMutableJythonSequence
- 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
-
append
public abstract void append(org.python.core.PyObject element) Description copied from interface:MutableJythonSequence
Addselement
to the end of the sequence.- Specified by:
append
in interfaceMutableJythonSequence
-
extend
public abstract void extend(org.python.core.PyObject sequence) Description copied from interface:MutableJythonSequence
Adds all elements fromsequence
to the end of the sequence.- Specified by:
extend
in interfaceMutableJythonSequence
-
remove
public abstract void remove(org.python.core.PyObject element) throws org.python.core.PyException Description copied from interface:MutableJythonSequence
Removeselement
from the sequence, if it exists.- Specified by:
remove
in interfaceMutableJythonSequence
- Throws:
org.python.core.PyException
-Py.ValueError
if the element is not in the sequence.
-
pop
public org.python.core.PyObject pop() throws org.python.core.PyExceptionDescription copied from interface:MutableJythonSequence
Pops the last element off the sequence and returns it.- Specified by:
pop
in interfaceMutableJythonSequence
- Throws:
org.python.core.PyException
-Py.IndexError
if the sequence is empty.
-
pop
public abstract org.python.core.PyObject pop(int index) throws org.python.core.PyException Description copied from interface:MutableJythonSequence
Pops the element atindex
off the sequence and returns it. Should support negative values forindex
, to indicate offset from the end of the sequence.- Specified by:
pop
in interfaceMutableJythonSequence
- Throws:
org.python.core.PyException
-Py.IndexError
if the index is not in range.
-
pyset
protected abstract void pyset(int index, org.python.core.PyObject value) - Overrides:
pyset
in classorg.python.core.PySequence
-
insert
public abstract void insert(int index, org.python.core.PyObject element) Description copied from interface:MutableJythonSequence
Addselement
to sequence at positionindex
.- Specified by:
insert
in interfaceMutableJythonSequence
-
setslice
protected void setslice(int start, int stop, int step, org.python.core.PyObject value) throws org.python.core.PyIgnoreMethodTag Deliberately stubbed - override if you want to implement slice assignment, a fairly uncommon Python operation:l = ['a', 'b', 'c', 'd'] l[1:2] = (2, 3) print l >>> ['a', 2, 3, 'd']
- Overrides:
setslice
in classorg.python.core.PySequence
- Throws:
org.python.core.PyIgnoreMethodTag
- marker exception to prevent this method from being visible in Jython code.
-
delslice
protected void delslice(int start, int stop, int step, int n) throws org.python.core.PyIgnoreMethodTag Deliberately stubbed - override if you want to implement slice deletion, a fairly uncommon Python operation:l = ['a', 'b', 'c', 'd'] del l[1:2] print l >>> ['a', 'd']
- Overrides:
delslice
in classorg.python.core.PySequence
- Throws:
org.python.core.PyIgnoreMethodTag
- marker exception to prevent this method from being visible in Jython code.
-
__imul__
public org.python.core.PyObject __imul__(org.python.core.PyObject other) throws org.python.core.PyIgnoreMethodTag Deliberately stubbed - override if you want to implement the (uncommon)__imul__
operator.l = ['a', 'b', 'c', 'd'] l *= 2 print l >>> ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
- Specified by:
__imul__
in interfaceMutableJythonSequence
- Overrides:
__imul__
in classorg.python.core.PyObject
- Returns:
- the result of the mul, or
null
if this operation is not defined - Throws:
org.python.core.PyIgnoreMethodTag
- marker exception to prevent this method from being visible in Jython code.
-
sort
public void sort(org.python.core.PyObject[] args, String[] keywords) throws org.python.core.PyIgnoreMethodTag Deliberately stubbed - override if you want to implement in-place sorting.l = ['a', 'b', 'c', 'd'] l.sort(reverse=True) print l >>> ['d', 'c', 'b', 'a']
- Specified by:
sort
in interfaceMutableJythonSequence
- Throws:
org.python.core.PyIgnoreMethodTag
- marker exception to prevent this method from being visible in Jython code.
-