136 lines
2.7 KiB
Java
136 lines
2.7 KiB
Java
import java.util.Iterator;
|
|
import net.runelite.mapping.Export;
|
|
import net.runelite.mapping.Implements;
|
|
import net.runelite.mapping.ObfuscatedName;
|
|
import net.runelite.mapping.ObfuscatedSignature;
|
|
|
|
@ObfuscatedName("jq")
|
|
@Implements("IterableDualNodeQueue")
|
|
public class IterableDualNodeQueue implements Iterable {
|
|
@ObfuscatedName("a")
|
|
@ObfuscatedSignature(
|
|
signature = "Lfa;"
|
|
)
|
|
@Export("sentinel")
|
|
public DualNode sentinel;
|
|
@ObfuscatedName("t")
|
|
@ObfuscatedSignature(
|
|
signature = "Lfa;"
|
|
)
|
|
@Export("head")
|
|
DualNode head;
|
|
|
|
public IterableDualNodeQueue() {
|
|
this.sentinel = new DualNode();
|
|
this.sentinel.previousDual = this.sentinel;
|
|
this.sentinel.nextDual = this.sentinel;
|
|
}
|
|
|
|
@ObfuscatedName("a")
|
|
@Export("clear")
|
|
public void clear() {
|
|
while (this.sentinel.previousDual != this.sentinel) {
|
|
this.sentinel.previousDual.removeDual();
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("t")
|
|
@ObfuscatedSignature(
|
|
signature = "(Lfa;)V"
|
|
)
|
|
@Export("add")
|
|
public void add(DualNode var1) {
|
|
if (var1.nextDual != null) {
|
|
var1.removeDual();
|
|
}
|
|
|
|
var1.nextDual = this.sentinel.nextDual;
|
|
var1.previousDual = this.sentinel;
|
|
var1.nextDual.previousDual = var1;
|
|
var1.previousDual.nextDual = var1;
|
|
}
|
|
|
|
@ObfuscatedName("q")
|
|
@ObfuscatedSignature(
|
|
signature = "()Lfa;"
|
|
)
|
|
@Export("removeLast")
|
|
public DualNode removeLast() {
|
|
DualNode var1 = this.sentinel.previousDual;
|
|
if (var1 == this.sentinel) {
|
|
return null;
|
|
} else {
|
|
var1.removeDual();
|
|
return var1;
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("v")
|
|
@ObfuscatedSignature(
|
|
signature = "()Lfa;"
|
|
)
|
|
@Export("last")
|
|
public DualNode last() {
|
|
return this.previousOrLast((DualNode)null);
|
|
}
|
|
|
|
@ObfuscatedName("l")
|
|
@ObfuscatedSignature(
|
|
signature = "(Lfa;)Lfa;"
|
|
)
|
|
@Export("previousOrLast")
|
|
DualNode previousOrLast(DualNode var1) {
|
|
DualNode var2;
|
|
if (var1 == null) {
|
|
var2 = this.sentinel.previousDual;
|
|
} else {
|
|
var2 = var1;
|
|
}
|
|
|
|
if (var2 == this.sentinel) {
|
|
this.head = null;
|
|
return null;
|
|
} else {
|
|
this.head = var2.previousDual;
|
|
return var2;
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("c")
|
|
@ObfuscatedSignature(
|
|
signature = "()Lfa;"
|
|
)
|
|
@Export("previous")
|
|
public DualNode previous() {
|
|
DualNode var1 = this.head;
|
|
if (var1 == this.sentinel) {
|
|
this.head = null;
|
|
return null;
|
|
} else {
|
|
this.head = var1.previousDual;
|
|
return var1;
|
|
}
|
|
}
|
|
|
|
public Iterator iterator() {
|
|
return new IterableDualNodeQueueIterator(this);
|
|
}
|
|
|
|
@ObfuscatedName("n")
|
|
@ObfuscatedSignature(
|
|
signature = "(Lfa;Lfa;)V"
|
|
)
|
|
@Export("DualNodeDeque_addBefore")
|
|
public static void DualNodeDeque_addBefore(DualNode var0, DualNode var1) {
|
|
if (var0.nextDual != null) {
|
|
var0.removeDual();
|
|
}
|
|
|
|
var0.nextDual = var1;
|
|
var0.previousDual = var1.previousDual;
|
|
var0.nextDual.previousDual = var0;
|
|
var0.previousDual.nextDual = var0;
|
|
}
|
|
}
|