Package org.mapdb.elsa
Class ElsaStack
java.lang.Object
org.mapdb.elsa.ElsaStack
- Direct Known Subclasses:
ElsaStack.IdentityArray,ElsaStack.MapStack,ElsaStack.NoReferenceStack
ElsaStack contains already serialized object. Elsa check for backward references, by comparing newly serialized objects against Stack content. This comparation could be major overhead, so there are three strategies (Stack implementations) for object comparation:
- IdentityHashMap is good for large object arrays, is enabled by default
- HashMap is very slow (full Object.equals()), but performs full deduplication.
- Array with linear search, smaller overhead, but performance degrades fast. Better for tiny objects (5 items)
- No check. Good for primitive objects. Backward (more precisely cyclic) can cause infinitive loop.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classuses array with linear identity (==) search.static final classUses map (typicallyIdentityHashMapto resolve objects.static final classNo backward references are resolved, no stack is maintained -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract voidintaddClassInfo(ElsaSerializerPojo.ClassInfo clazzInfo) abstract ObjectgetInstance(int i) abstract intgetSize()abstract intidentityIndexOf(Object obj) intresolveClassId(String clazzName) resolveClassInfo(int classId)
-
Field Details
-
classInfos
-
-
Constructor Details
-
ElsaStack
public ElsaStack()
-
-
Method Details
-
add
-
identityIndexOf
-
getSize
public abstract int getSize() -
getInstance
-
resolveClassId
-
addClassInfo
-
resolveClassInfo
-