Class ElsaClassInfoResolver.ArrayBased

  • All Implemented Interfaces:
    ElsaClassInfoResolver
    Enclosing interface:
    ElsaClassInfoResolver

    public static class ElsaClassInfoResolver.ArrayBased
    extends java.lang.Object
    implements ElsaClassInfoResolver
    Stores Class Names in sequential array. Classes must always be registered in the same order, or their ID will change.
    • Field Detail

      • reverse

        protected final java.util.Map<java.lang.String,​java.lang.Integer> reverse
    • Constructor Detail

      • ArrayBased

        public ArrayBased​(java.lang.Class[] classes,
                          java.lang.ClassLoader classLoader)
        Registers set of classes with their classloader.
        Parameters:
        classes - classes used in resolver, index in array is class ID in binary data
        classLoader - used to load classes from their name
    • Method Detail

      • getClassInfo

        public ElsaSerializerPojo.ClassInfo getClassInfo​(int classId)
        Description copied from interface: ElsaClassInfoResolver
        Resolves Integer Class ID (used in binary data) into Class Info which contains class name, fields name, fields order...
        Specified by:
        getClassInfo in interface ElsaClassInfoResolver
        Parameters:
        classId - binary ID which represends class in serialized data
        Returns:
        Class structure information for given class
      • classToId

        public int classToId​(java.lang.String className)
        Description copied from interface: ElsaClassInfoResolver
        Resolves Class Name to its Class ID (used in binary data)/
        Specified by:
        classToId in interface ElsaClassInfoResolver
        Parameters:
        className - class name as returned by Class.getName()
        Returns:
        Class ID, it is used in serialized binary data to identify class