SubsetNew (UnicodeNamedArraylist function)

From m204wiki
Revision as of 19:43, 28 January 2011 by Admin (talk | contribs) (1 revision)
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