// You can redistribute this software and/or modify it under the terms of
// the Ozone Library License version 1 published by ozone-db.org.
//
// The original code and portions created by SMB are
// Copyright (C) 1997-@year@ by SMB GmbH. All rights reserved.
//
// $Id: DxListDeque.java,v 1.1 2001/12/18 10:31:30 per_nyfelt Exp $
package org.ozoneDB.DxLib;
/**
*
*
* @author <a href="http://www.softwarebuero.de/">SMB</a>
* @version $Revision: 1.1 $Date: 2001/12/18 10:31:30 $
*/
public class DxListDeque extends DxListBag implements DxDeque {
final static long serialVersionUID = 1L;
/**
*/
public DxListDeque() {
}
/**
*/
public Object peek() {
return peekBottom();
}
/**
*/
public Object peekTop() {
//if the deque is empty, this return null
return top.prev().data();
}
/**
*/
public Object peekBottom() {
//if the deque is empty, this return null
return start.next().data();
}
/**
*/
public synchronized void push( Object obj ) {
pushBottom( obj );
}
/**
*/
public synchronized void pushTop( Object obj ) {
top.storeInfront( new DxListNode( obj ) );
itemCount++;
}
/**
*/
public synchronized void pushBottom( Object obj ) {
start.storeBehind( new DxListNode( obj ) );
itemCount++;
}
/**
*/
public Object pop() {
return popBottom();
}
/**
*/
public Object popTop() {
Object answer = top.prev().data();
if (answer != null) {
top.prev().remove();
itemCount--;
}
return answer;
}
/**
*/
public Object popBottom() {
Object answer = start.next().data();
if (answer != null) {
start.next().remove();
itemCount--;
}
return answer;
}
}
|