java.lang.Object
swim.structure.Item
swim.structure.Value
swim.structure.Expression
swim.structure.Selector
swim.structure.selector.DescendantsSelector
A
Selector that, when evaluated against some Interpreter stack, yields all of the "descendants" of the top
Item in stack. A "descendant" is recursively defined to be a Record's children and their descendants;
it has no definition for any other type.-
Method Summary
Modifier and TypeMethodDescriptionThe means to chainSelectors.protected int<T> Output<T>boolean<T> TforSelected(Interpreter interpreter, Selectee<T> callback) Invokesthen.forSelected()against theInterpretercontaining each child, then moves onto each descendant.inthashCode()mapSelected(Interpreter interpreter, Selectee<Item> transform) substitute(Interpreter interpreter) then()Returns theSelectorthat thisSelectoruses to match sub-selections.intReturns the heterogeneous sort order of thisItem.Methods inherited from class swim.structure.Selector
children, compareTo, debug, descendants, evaluate, filter, filter, get, get, getAttr, getAttr, getItem, getItem, identity, invoke, isConstant, keys, literal, precedence, valuesMethods inherited from class swim.structure.Expression
and, and, bitwiseAnd, bitwiseAnd, bitwiseNot, bitwiseOr, bitwiseOr, bitwiseXor, bitwiseXor, conditional, conditional, divide, divide, eq, eq, ge, ge, gt, gt, inverse, le, le, lt, lt, minus, minus, modulo, modulo, ne, ne, negative, not, or, or, plus, plus, positive, times, timesMethods inherited from class swim.structure.Value
absent, alias, body, booleanValue, booleanValue, branch, builder, byteValue, byteValue, charValue, charValue, commit, contains, containsKey, containsKey, containsValue, doubleValue, doubleValue, empty, extant, flattened, floatValue, floatValue, fromObject, getField, getField, getSlot, getSlot, head, header, headers, integerValue, integerValue, intValue, intValue, isAliased, isDefined, isDefinite, isDistinct, isMutable, key, keyEquals, lambda, length, longValue, longValue, numberValue, numberValue, removed, removed, shortValue, shortValue, stringValue, stringValue, tag, tail, target, toValue, unflattenedMethods inherited from class swim.structure.Item
appended, appended, appended, appended, appended, appended, appended, appended, cast, cast, coerce, coerce, concat, display, evaluate, globalScope, iterator, max, min, prepended, prepended, prepended, prepended, prepended, prepended, prepended, prepended, substitute, toString, updated, updated, updated, updated, updated, updated, updated, updated, updated, updated, updated, updated, updated, updated, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedAttr, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlot, updatedSlotMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Method Details
-
then
Description copied from class:SelectorReturns theSelectorthat thisSelectoruses to match sub-selections. -
forSelected
Invokesthen.forSelected()against theInterpretercontaining each child, then moves onto each descendant.- Specified by:
forSelectedin classSelector- Returns:
- the result of executing
callbackfrom the context of the lastSelectorin the chain formed bySelector thenfields.
-
mapSelected
- Specified by:
mapSelectedin classSelector
-
substitute
- Overrides:
substitutein classItem
-
andThen
Description copied from class:SelectorThe means to chainSelectors. By intention, this is NOT a strict functional composition: for twoSelectorss1ands2,s1.andThen(s2)DOES NOT NECESSARILY return a newSelectors3such thats3.evaluate(args)is equivalent tos2.evaluate(s1.evaluate(args)).The reason for this is that for
SelectorslikeChildrenSelectorthat yield (logical) collections, we wish to invoke the nextSelector, say aGetSelector, against every result. Under strict functional rules,ChildrenSelector.andThen(someGetSelector).evaluate(args)would instead return at most one defined value regardless of the number of children. -
typeOrder
public int typeOrder()Description copied from class:ItemReturns the heterogeneous sort order of thisItem. Used to impose a total order on the set of all items. When comparing two items of different types, the items order according to theirtypeOrder. -
compareTo
-
equals
-
hashCode
public int hashCode() -
debugThen
-