SubsetNew (UnicodeNamedArraylist function)

From m204wiki
Revision as of 23:16, 2 March 2011 by JAL (talk | contribs)
Jump to navigation Jump to search

Create UnicodeNamedArraylist of items matching some selection criteria (UnicodeNamedArraylist class)


This function searches the entire UnicodeNamedArraylist to find and return all items that match a specified criterion. The criterion is supplied by the SelectionCriterion object that is the required SubsetNew parameter. If no item satisfies the criterion, SubsetNew returns an empty UnicodeNamedArraylist.

Syntax

%outUniNal = uniNal:SubsetNew( selectionCriterion)

Syntax terms

%unamraylNew A UnicodeNamedArraylist variable of the same type as the method UnicodeNamedArraylist (%unamrayl) to contain the items that are located by the search. If %unamraylNew is not empty, its contents are discarded before it is populated by the return items from SubsetNew.
%unamrayl A UnicodeNamedArraylist object.
criterion A SelectionCriterion object, which is a relational expression that is applied to a %unamrayl item value to determine whether the value satisfies the expression. The expression consists of a function, an operator, and a User Language intrinsic type (numeric, string, or Unicode) value.

For example, LT(this, 91) is the criterion this < 91, where this is an identity function that simply returns the item's value. The items that satisfy this expression populate the UnicodeNamedArraylist that SubsetNew returns.

The function in the criterion is a method value (a method or class member name literal, or a method variable) for a method that operates on items of the type specified on the %unamrayl declaration and that returns an intrinsic value. This is described further in "Specifying a SelectionCriterion's parameters".

Usage notes

  • FindNextItem is similar to SubsetNew except that it returns just the first matching item it encounters.

Examples

In the following request, a SubsetNew call uses a selection criterion that first applies the intrinsic Length function to the collection items:

Begin %k is unicodeNamedArraylist of longstring %kk is unicodeNamedArraylist of longstring %k = new %k('§Jan':u) = 'Orion' %k('§Apr':u) = 'Leo' %k('§Mar':u) = 'Cancer' %k('§Jun':u) = 'Ursa Minor' %k('§Nov':u) = 'Andromeda' %k('§Dec':u) = 'Aries' %k('§Feb':u) = 'Canis Major' %sel is object selectionCriterion for longstring %n is float %sel = GE(length, 9) %kk = %k:subsetNew(%sel) %kk:print End

The result is:

1: &sect.Feb: Canis Major 2: &sect.Jun: Ursa Minor 3: &sect.Nov: Andromeda

See also