Custom Containers
Custom containers is a simple way to provide own implementation of standard container types, thus allowing for easy extensibility of the collections language.
Example: weakHashMap
Provided the following declaration is reachable from the model currently being edited...
custom containers WeakCollections {
public container weakHashMap<K, V> specifies map<K, V> {
runtime type: WeakHashMap<K, V>
factory: <no factory>
}
public container weakHashSet<E> specifies set<E> {
runtime type: WeakSet<E>
factory: <no factory>
}
}
... one can use the weak version of hashmap thusly:
map<Object, int> myMap= new weakHashMap<Object, int>;
Custom Containers Declaration
A root node of concept CustomContainers may have one or more declarations.
[public|protected|private] container containerName<TypeVar, ...> specifies container_type<TypeVar, ...> {
runtime type: Classifier<TypeVar, ...>
factory: expression of type Classifier<> (optional)
}
declaration part | allowed contents |
---|---|
containerName | any valid identifier |
container_type | one of the existing container types of the collections language |
runtime type | Java classifier which represent implementation of the container |
factory | (optional) container creation expression; |
Last modified: 23 March 2021