Class AbstractJythonSequence

    • 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 
      Constructor Description
      AbstractJythonSequence​(java.lang.Class<?> clazz)  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      abstract 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; from start (inclusive) to stop (exclusive), stepping by step.
      boolean isMappingType()  
      boolean isNumberType()  
      boolean isSequenceType()  
      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 performing sequence * count, which returns a new list containing sequence * count items.
      protected abstract java.util.List<? extends org.python.core.PyObject> sublist​(int start, int stop)
      Retrieve a subset of this sequence, from start (inclusive) to stop (exclusive).
      java.lang.String 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 class java.lang.Object

        clone, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • AbstractJythonSequence

        public AbstractJythonSequence​(java.lang.Class<?> clazz)
        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 Detail

      • pyget

        protected abstract org.python.core.PyObject pyget​(int index)
        Specified by:
        pyget in class org.python.core.PySequence
      • getslice

        protected org.python.core.PyObject getslice​(int start,
                                                    int stop,
                                                    int step)
        Retrieve a 'slice' of this sequence; from start (inclusive) to stop (exclusive), stepping by step. Will delegate to pyget(int) and sublist(int, int), and handle negative indices appropriately.
        Specified by:
        getslice in class org.python.core.PySequence
        Returns:
        A new list from specified elements of the original sequence.
      • sublist

        protected abstract java.util.List<? extends org.python.core.PyObject> sublist​(int start,
                                                                                      int stop)
        Retrieve a subset of this sequence, from start (inclusive) to stop (exclusive).
        See Also:
        List.subList(int, int)
      • repeat

        protected abstract org.python.core.PyObject repeat​(int count)
        Implements the repeat operation, which is used by Jython when performing sequence * 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 class org.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 class org.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 interface JythonSequence
        Overrides:
        __mul__ in class org.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 from JythonSequence.__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 interface JythonSequence
        Overrides:
        __rmul__ in class org.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 class org.python.core.PySequence
        Throws:
        org.python.core.PyIgnoreMethodTag
      • isMappingType

        public boolean isMappingType()
                              throws org.python.core.PyIgnoreMethodTag
        Overrides:
        isMappingType in class org.python.core.PySequence
        Throws:
        org.python.core.PyIgnoreMethodTag
      • isNumberType

        public boolean isNumberType()
                             throws org.python.core.PyIgnoreMethodTag
        Overrides:
        isNumberType in class org.python.core.PySequence
        Throws:
        org.python.core.PyIgnoreMethodTag
      • __repr__

        public org.python.core.PyString __repr__()
        Specified by:
        __repr__ in interface JythonSequence
        Overrides:
        __repr__ in class org.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 class org.python.core.PyObject
      • toString

        public java.lang.String toString()
                                  throws org.python.core.PyIgnoreMethodTag
        Overrides:
        toString in class org.python.core.PyObject
        Throws:
        org.python.core.PyIgnoreMethodTag