001    package edu.jhu.mb.ernst.util.slot;
002
003    import cnslab.cnsnetwork.Queue;
004
005    /***********************************************************************
006    * Adapter from ERNST Queue to Slot.
007    * 
008    * @version
009    *   $Date: 2012-04-15 13:06:25 -0500 (Sun, 15 Apr 2012) $
010    *   $Rev: 7 $
011    *   $Author: croft $
012    * @since
013    *   2011-11-09
014    * @author
015    *   David Wallace Croft
016    ***********************************************************************/
017
018    public final class  ErnstQueueSlot<T extends Comparable<T>>
019      implements Slot<T>
020    ////////////////////////////////////////////////////////////////////////
021    ////////////////////////////////////////////////////////////////////////
022    {
023    
024    private final Queue<T>  queue;
025    
026    ////////////////////////////////////////////////////////////////////////
027    ////////////////////////////////////////////////////////////////////////
028    
029    public  ErnstQueueSlot ( final Queue<T>  queue )
030    ////////////////////////////////////////////////////////////////////////
031    {
032      if ( queue == null )
033      {
034        throw new IllegalArgumentException ( "null queue" );
035      }
036      
037      this.queue = queue;
038    }
039
040    ////////////////////////////////////////////////////////////////////////
041    ////////////////////////////////////////////////////////////////////////
042    
043    @Override
044    public boolean  offer ( final T  t )
045    ////////////////////////////////////////////////////////////////////////
046    {
047      queue.insertItem ( t );
048      
049      return true;
050    }
051
052    ////////////////////////////////////////////////////////////////////////
053    ////////////////////////////////////////////////////////////////////////
054    }