// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) 

public final class NodeList {

    public NodeList()
    {
        aBoolean344 = false;
        int anInt345 = -77;
        head = new Node();
        head.prev = head;
        head.next = head;
    }

    public void insertHead(Node node)
    {
        if(node.next != null)
            node.unlink();
        node.next = head.next;
        node.prev = head;
        node.next.prev = node;
        node.prev.next = node;
    }

    public void insertTail(int dummy, Node node)
    {
        if(node.next != null)
            node.unlink();
        node.next = head;
        node.prev = head.prev;
        while(dummy >= 0)
            aBoolean344 = !aBoolean344;
        node.next.prev = node;
        node.prev.next = node;
    }

    public Node popHead()
    {
        Node node = head.prev;
        if(node == head)
        {
            return null;
        } else
        {
            node.unlink();
            return node;
        }
    }

    public Node reverseGetFirst()
    {
        Node node = head.prev;
        if(node == head)
        {
            current = null;
            return null;
        } else
        {
            current = node.prev;
            return node;
        }
    }

    public Node getFirst()
    {
        Node node = head.next;
        if(node == head)
        {
            current = null;
            return null;
        } else
        {
            current = node.next;
            return node;
        }
    }

    public Node reverseGetNext()
    {
        Node node = current;
        if(node == head)
        {
            current = null;
            return null;
        } else
        {
            current = node.prev;
            return node;
        }
    }

    public Node getNext()
    {
        Node node = current;
        if(node == head)
        {
            current = null;
            return null;
        }
        current = node.next;
            return node;
    }

    public void removeAll()
    {
        if(head.prev == head)
            return;
        do
        {
            Node node = head.prev;
            if(node == head)
                return;
            node.unlink();
        } while(true);
    }

    private boolean aBoolean344;
    private final Node head;
    private Node current;
}
