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
`MultiplexLineNumberAllocator​(org.objectweb.asm.tree.ClassNode primaryNode)`

### Method Summary

All Methods Instance Methods Concrete Methods
`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)