// by BozZ (Ghijsels Jimmy)
//package com.deitel.jhtp5.ch20;

public class DoubleListNode

{	Object data;
	private DoubleListNode eerste;
	private DoubleListNode laatste;

	public DoubleListNode()
	{
	this(null,null,null);
	}

	public DoubleListNode(Object object)
	{	data = object;	}

	public DoubleListNode(Object object, DoubleListNode volgende, DoubleListNode vorige)
	{	data = object;
		eerste = volgende;
		laatste = vorige;
	}

	public Object getData()
	{	return data;	}

	public DoubleListNode getVolgende()
	{	return eerste;	}

	public DoubleListNode getVorige()
	{	return laatste;	}

	public void setData(Object object)
	{	data = object;	}

	public void setVolgende(DoubleListNode e)
	{	eerste = e;	}

	public void setVorige(DoubleListNode l)
	{	laatste = l;	}



 public boolean isEmpty()
        {
            return eerste == null;

        }

	public synchronized void insertAtFront(Object object)
	{
                if (isEmpty())
                    eerste=laatste=new DoubleListNode(object);
                else
                {
                    DoubleListNode temp = eerste;
                    eerste=new DoubleListNode(object);
                    eerste.setVolgende(temp);
                    temp.setVorige(eerste);
                }
	}

        public synchronized void insertAtRear(Object object)
        {
            if(isEmpty())
                laatste=eerste=new DoubleListNode(object);
            else
            {
                DoubleListNode temp = laatste;
                laatste = new DoubleListNode(object);
                laatste.setVorige(temp);
                temp.setVolgende(laatste);

            }
        }


        public synchronized void printInverse()
        {
		    if(isEmpty())
		    {
			System.out.println("empty");
			return;
		    }
            DoubleListNode current = laatste;

            while(current != null){
				System.out.print(current.data.toString() + " ");
				current = current.laatste;
				}
			System.out.print("\n");
		}


        public synchronized void print()
        {
		    if(isEmpty())
		    {
			System.out.println("empty");
			return;
		    }
            DoubleListNode current = eerste;

            while(current != null){
				System.out.print(current.data.toString() + " ");
				current = current.eerste;
				}
			System.out.print("\n");
		}



}