: Public abstract <<type>> Class
Created: 4/10/2008 12:15:52 PM
Modified: 6/27/2008 12:42:43 PM
Project:
Advanced:
A sequence is a type of set where the elements have been assigned offsets (a integral ordering). If the same element is assigned multiple offsets, then the sequence "revisits" the element for each assigned offset.  Logically, we can think of a sequence as a set of pairs <element :T, offset : Integer>. Since both element and offset must be equal for the ordered pair to be equal, there is no violation of the set semantics.  Not all numbered slots in a sequence must be occupied, and no offset may be occupied that exceeds the "length." <br /></p><p><br /></p><p>{offset > length implies element.isNull}<br /></p>
Operation
Public
append( element: T,
):Sequence<T>
Details:
sequential
Public
asSet():Set<T>
Details:
sequential
Public
at( position: Integer,
):T
Details:
sequential
Public
collect( expr: OCL,
):Sequence<expr.type>
Details:
sequential
Public
concatenate( tail: Sequence<T>,
):Sequence<T>
Details:
sequential
Public
deleteAt( position: Integer,
):Sequence<T>
Details:
sequential
Public
deleteFirst():Sequence<T>
Details:
sequential
Public
deleteLast():Sequence<T>
Details:
sequential
Public
first():Record<T, Integer = 1>
Details:
sequential
Public
last():Record<T, Integer = length>
Details:
sequential
Public
prepend( element: T,
):Sequence<T>
Details:
sequential
Public
reverse():Sequence<T>
Details:
sequential
Public
subSequence( begin: Integer,
end: Integer,
):Sequence<T>
Details:
sequential
Public
tail():Sequence<T>
Details:
sequential
Element Source Role Target Role
«parameter» T
Class  
Name: element
 
Name:  
 
Details:
 
Tag Value
persistence persistent
Details:
 
Constraint Type Status
{offset > length implies element.isNull} Invariant Approved
Details:
 
Object Type Connection Notes
«Type» Sequence Class Dependency  
Sequence Class Realization  
«type» CircularSequence Class Generalization  
«Type» Collection Class Generalization