The EGL List type is a reference type that provides a type-specific dynamic array. In Eclipse IDE for EGL Developers, the type definition for List is EList.
eglx.lang
/**
* EList defines the API of lists (dynamically-sized arrays) in EGL.
* Lists have a size, which is the number of elements they contain.
* The size may be zero.
*/
externalType EList type ClassType {
typeParameters = ["E"] }
/**
* {@Operation +} Creates a new list consisting of the first operand's elements
* followed by the second operand. The assigning form of the operator (+=) does
* not create a new list: the appendElement function is used to add the second
* operand to the end of the first operand.
*/
static function $Plus(lvalue EList in, rvalue EAny in)
returns (EList) {@Operation{"+"}};
/**
* {@Operation ::} Creates a new list consisting of the first operand's elements
* followed by the second operand. The assigning form of the operator (::=) does
* not create a new list: the appendElement function is used to add the second
* operand to the end of the first operand.
*/
static function $Concat(value EList in, rvalue EAny in)
returns (EList) {@Operation{"::"}};
/**
* {@Operation +} Creates a new list consisting of the first operand followed
* by the second operand's elements. The assigning form of the operator (+=) does
* not create a new list: the insertElement function is used to add the second
* operand to the front of the first operand.
*/
static function $Plus(lvalue EAny in, rvalue EList in)
returns (EList) {@Operation{"+"}};
/**
* {@Operation ::} Creates a new list consisting of the first operand followed
* by the second operand's elements. The assigning form of the operator (::=) does
* not create a new list: the insertElement function is used to add the second
* operand to the front of the first operand.
*/
static function $Concat(value EAny in, rvalue EList in)
returns (EList) {@Operation{"::"}};
/**
* {@Operation +} Creates a new list consisting of the first operand's elements
* followed by the second operand's elements. The assigning form of the operator
* (+=) does not create a new list: the appendAll function is used to add the
* second operand's elements to the end of the first operand.
*/
static function $Plus(lvalue EList in, rvalue EList in)
returns (EList) {@Operation{"+"}};
/**
* {@Operation ::} Creates a new list consisting of the first operand's elements
* followed by the second operand's elements. The assigning form of the operator
* (::=) does not create a new list: the appendAll function is used to add the
* second operand's elements to the end of the first operand.
*/
static function $Concat(value EList in, rvalue EList in)
returns (EList) {@Operation{"::"}};
/**
* {@Operation []} Returns the element at the specified index.
* @throws InvalidIndexException if the index is less than 1 or greater than the size.
*/
static function $Get(value EList in, index EInt in)
returns(EAny) {@Operation{"[]"}};
/**
* Adds an element to the end of this list.
*
* @param element the new element.
* @return this list, after the new element has been added.
*/
function appendElement(element EAny in) returns(EList);
/**
* Adds the elements of the specified list to the end of this list.
*
* @param other the other list.
* @return this list, after the new elements have been added.
*/
function appendAll(other EList in) returns(EList);
/**
* Inserts an element into this list at a specified position. Any elements
* at or beyond the specified index are shifted toward the end.
*
* The index may be any valid position within this list. It may also be
* zero, indicating that the new element goes at the front, or it may be one
* more than the current size, indicating that the new element goes at the
* end (as if appendElement had been called).
*
* @param element the new element.
* @param index where the element should be added.
* @throws InvalidIndexException if the index is negative or greater than 1 plus the size.
*/
function insertElement(element EAny in, index EInt in);
/**
* Removes the element at a specified position from this list. Any elements
* at or beyond the specified index are shifted toward the front.
*
* @param index where the element should be removed.
* @throws InvalidIndexException if the index isn't a valid subscript.
*/
function removeElement(index EInt in);
/**
* Returns the index of the first ocurrance of the specified value within
* the list. The search begins at the specified index and stops at the
* end of the list.
*
* @param value the value to find.
* @param index the index of the element to examine first.
* @return the index of the value, or 0 if it was not found.
* @throws InvalidIndexException if the index isn't a valid subscript.
*/
function indexOfElement(value EAny in, index EInt in) returns(EInt);
/**
* This is equivalent to indexOfElement(element, 1).
*
* @param value the value to find.
* @return the index of the value, or 0 if it was not found.
*/
function indexOfElement(value EAny in) returns(EInt);
/**
* Removes all elements from the list.
*/
function removeAll();
/**
* Sets the value of an element.
*
* @param value the value for the specified element.
* @param index the index of the element to be updated.
* @throws InvalidIndexException if the index isn't a valid subscript.
*/
function setElement(value EAny in, index EInt in);
/**
* Returns the current size of the list.
*
* @return the current size of the list.
*/
function getSize() returns(EInt);
/**
* Changes the size of the list. If the new size is greater than the current
* size, new elements are added at the end of the list. If the new size is
* smaller than the current size, elements at the end are removed.
*
* @param size the new size.
* @throws InvalidSizeException if the specified size is negative.
*/
function resize(size EInt in);
/**
* Sorts the elements of the list in order from smallest to largest.
*
* @param sortFunction a function capable of comparing two elements.
* @throws InvocationException when the sort function can't be called.
*/
function sort(sortFunction SortFunction in);
end
/**
* The delegate used by EList.sort() to compare elements.
*
* @param a the first value.
* @param b the second value.
* @return zero if a == b, a positive number if a > b, or a negative number if a < b.
*/
Delegate
SortFunction(a any in, b any in) returns (int)
end
| Target | Issue |
|---|---|
| Java | No issues. |
| JavaScript | No issues. |