Interface Composition

All Known Subinterfaces:
ChainKeyValueStorage<K,​V,​EN>, ChainStorage<E,​K,​V,​EN>, ChainStorage.Entry<E,​K,​V,​EN>, Set_long
All Known Implementing Classes:
_intList, _intSet, AbstractChainEntry, AbstractChainEntry.Head, AbstractChainEntryLinked, AbstractChainEntryLinkedHashed, AbstractChainEntryLinkedKV, AbstractChainEntryLinkedKVHashed, AbstractChainKeyValueStorage, AbstractChainStorage, BulkList, ChainEntryLinkedHashedStrong, ChainEntryLinkedStrong, ChainStorageStrong, ChainStrongStrongStorage, ConstHashEnum, ConstHashTable, ConstList, EqBulkList, EqConstHashEnum, EqConstHashTable, EqConstList, EqHash2DMap, EqHashEnum, EqHashTable, FixedList, HashEnum, HashMapIdId, HashMapIdObject, HashMapObjectId, HashTable, LimitList, MiniMap, Set_long.Default, Substituter.Default

public interface Composition
Marker type to indicate that a certain implementation is a composition (is composed of unshared objects). This is usefull (or even necessary) for having a means of distinguishing generically handlable implementations from implementations that require (or at least suggest) tailored generic treatment, e.g. for a persistence layer to persist the unshared objects in an inlined fashion rather than storing an external reference.

This is done via an interface instead of an annotations because the design aspect to be represented is a typical "is-a" relation and because annotation should actually not alter programm behavior.

See Also:
ComponentType