Class ElsaStack

java.lang.Object
org.mapdb.elsa.ElsaStack
Direct Known Subclasses:
ElsaStack.IdentityArray, ElsaStack.MapStack, ElsaStack.NoReferenceStack

public abstract class ElsaStack extends Object

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.
  • Field Details

  • Constructor Details

    • ElsaStack

      public ElsaStack()
  • Method Details

    • add

      public abstract void add(Object o)
    • identityIndexOf

      public abstract int identityIndexOf(Object obj)
    • getSize

      public abstract int getSize()
    • getInstance

      public abstract Object getInstance(int i)
    • resolveClassId

      public int resolveClassId(String clazzName)
    • addClassInfo

      public int addClassInfo(ElsaSerializerPojo.ClassInfo clazzInfo)
    • resolveClassInfo

      public ElsaSerializerPojo.ClassInfo resolveClassInfo(int classId)