Package org.stianloader.micromixin.transform.internal.util.smap

## Class MultiplexLineNumberAllocator

- java.lang.Object
- - org.stianloader.micromixin.transform.internal.util.smap.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).

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `MultiplexLineNumberAllocator​(org.objectweb.asm.tree.ClassNode primaryNode)` |

  - ### 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)