25.8. Тело выражения 545
При этом автоматически создается экземпляр коллекции, тип которо
го соответствует типу перечисленных элементов.
Последовательности (Sequence) целых (Integer) литералов имеют собст
венный специальный синтаксис, использующий описание интервала
(interval specification):
<start>...<end>
Это означает: «все Integer между <start> и <end>», где <start> и <end> –
OCLвыражения, результатами которых являются Integer. Например
Sequence{ 1 ... 7} эквивалентна Sequence{ 1, 2, 3, 4, 5, 6, 7 }
Sequence{ 2 ... ( 3 + 4 ) } эквивалентна Sequence{ 2, 3, 4, 5, 6, 7 }
Коллекции могут включать другие коллекции, например
OrderedSet{ OrderedSet{ 'Monday', 'Tuesday' }, OrderedSet{ 'Wednesday','Thursday', 'Friday' } }
25.8.6.1. Операции над коллекциями
Любой единичный объект может быть интерпретирован как Set, содер
жащий только один элемент.
Коллекции обладают большим набором операций. Они должны ини
циироваться с помощью специального синтаксиса, в котором исполь
зуется оператор «стрелка»:
коллекция>операцияКоллекции( параметры... )
Этот специальный синтаксис необходим, потому что OCL может интер
претировать любой единичный объект как Set, содержащий только один
объект. Таким образом, если объект имеет, например, операцию count()
ив Set есть операция с тем же именем count(), OCL нужно както разли
чать эти две операции: принадлежащую объекту и принадлежащую кол
лекции. Это осуществляется путем использования оператора «точка»
и вызова операций над коллекциями с помощью оператора «стрелка».
В следующих нескольких разделах рассматривается семантика опера
ций над коллекциями. Чтобы было проще ссылаться на операции, мы
разбили их на следующие категории:
• операции преобразования – преобразовывают один тип коллекции
в другой (раздел 25.8.6.2);
• операции сравнения – сравнивают коллекции (раздел 25.8.6.3);
• операции запроса – получают информацию о коллекции (раз
дел 25.8.6.4);
• операции доступа – обеспечивают доступ к элементам коллекции
(раздел 25.8.6.5);
• операции выбора – возвращают новую коллекцию, содержащую
подмножество или надмножество коллекции (раздел 25.8.6.6).