public class FieldNameIterator extends PyObject
str._formatter_field_name_split() and
unicode._formatter_field_name_split(). The function
_formatter_field_name_split() returns a pair (tuple) consisting of a head element
and an instance of this iterator. The constructor of this class effectively implements that
function, since as well as "being" the iterator, the object has an extra method head()
to return the required first member of the pair.| Modifier and Type | Class and Description |
|---|---|
static class |
FieldNameIterator.Chunk |
PyObject.ConversionException| Constructor and Description |
|---|
FieldNameIterator(PyString fieldNameObject)
Create an iterator for the parts of this field name (and extract the head name field, which
may be an empty string).
|
FieldNameIterator(String fieldName,
boolean bytes)
Create an iterator for the parts of this field name (and extract the head name field, which
may be an empty string).
|
| Modifier and Type | Method and Description |
|---|---|
PyObject |
__iter__()
Return an iterator that is used to iterate the element of this sequence.
|
PyObject |
__iternext__()
Return the next element of the sequence that this is an iterator
for.
|
Object |
head() |
boolean |
isBytes()
If originally given a PyString, the iterator must return PyString not PyUnicode.
|
FieldNameIterator.Chunk |
nextChunk()
Return the next "chunk" of the field name (or return null if ended).
|
PyObject |
pyHead()
Return the head object from the field name, as
PyInteger, PyString
or PyUnicode. |
__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__, __delete__, __delitem__, __delitem__, __delslice__, __delslice__, __dir__, __div__, __divmod__, __eq__, __findattr__, __findattr__, __findattr_ex__, __finditem__, __finditem__, __finditem__, __float__, __floordiv__, __format__, __ge__, __get__, __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__, __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__, __set__, __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, isDataDescr, isIndex, isMappingType, isNumberType, isSequenceType, noAttributeError, object___subclasshook__, readonlyAttributeError, setDict, setType, toStringpublic static final PyType TYPE
public FieldNameIterator(String fieldName, boolean bytes)
field_name ::= arg_name ("." attribute_name | "[" element_index "]")*
arg_name ::= [identifier | integer]
attribute_name ::= identifier
element_index ::= integer | index_string
The object is used from PyUnicode and from PyString, and we have to signal which it is, so
that returned values may match in type.fieldName - the field name as UTF-16bytes - true if elements returned should be PyString, else PyUnicodepublic FieldNameIterator(PyString fieldNameObject)
fieldNameObject - public PyObject __iter__()
PyObjectIf a PyObject subclass should support iteration based in the __finditem__() method, it must supply an implementation of __iter__() like this:
public PyObject __iter__() {
return new PySequenceIter(this);
}
When iterating over a python sequence from java code, it should be done with code like this:
for (PyObject item : seq.asIterable()) {
// Do somting with item
}
public PyObject __iternext__()
PyObject__iternext__ in class PyObjectpublic Object head()
public PyObject pyHead()
PyInteger, PyString
or PyUnicode.public final boolean isBytes()
public FieldNameIterator.Chunk nextChunk()