Class MultiplexLineNumberAllocator

  • Direct Known Subclasses:
    NOPMultiplexLineNumberAllocator

    public class MultiplexLineNumberAllocator
    extends java.lang.Object
    The MultiplexLineNumberAllocator "multiplexes" the LineNumberNodes of multiple classes into a continuous stream of line numbers. While the MultiplexLineNumberAllocator tries it's best to keep the line numbers as compact as possible, it is inevitably going to be a bit inefficient for the sake of the sanity of the developers (i.e. me) and maintainers (i.e. me).
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      SMAPRoot exportToSMAP​(java.lang.String stratum)  
      org.objectweb.asm.tree.LineNumberNode reserve​(org.objectweb.asm.tree.ClassNode allocator, org.objectweb.asm.tree.LineNumberNode originNode, org.objectweb.asm.tree.LabelNode copiedStart)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MultiplexLineNumberAllocator

        public MultiplexLineNumberAllocator​(@NotNull
                                            org.objectweb.asm.tree.ClassNode primaryNode)
    • Method Detail

      • exportToSMAP

        @NotNull
        public SMAPRoot exportToSMAP​(@NotNull
                                     java.lang.String stratum)
      • reserve

        @NotNull
        @Contract(mutates="this",
                  pure=false,
                  value="!null, !null -> new; null, _ -> fail; _, null -> fail")
        public org.objectweb.asm.tree.LineNumberNode reserve​(@NotNull
                                                             org.objectweb.asm.tree.ClassNode allocator,
                                                             @NotNull
                                                             org.objectweb.asm.tree.LineNumberNode originNode,
                                                             @NotNull
                                                             org.objectweb.asm.tree.LabelNode copiedStart)