All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.javagimmicks.collections.event.AbstractEventSortedSet Maven / Gradle / Ivy

package net.sf.javagimmicks.collections.event;

import java.util.Comparator;
import java.util.SortedSet;

public abstract class AbstractEventSortedSet extends AbstractEventSet implements SortedSet
{
   private static final long serialVersionUID = 3408305529028504791L;

   public AbstractEventSortedSet(SortedSet decorated)
   {
      super(decorated);
   }

   @Override
   public SortedSet getDecorated()
   {
      return (SortedSet)super.getDecorated();
   }

   public Comparator comparator()
   {
      return getDecorated().comparator();
   }

   public E first()
   {
      return getDecorated().first();
   }

   public E last()
   {
      return getDecorated().last();
   }

   public SortedSet headSet(E toElement)
   {
      return new EventSubSortedSet(this, getDecorated().headSet(toElement));
   }

   public SortedSet subSet(E fromElement, E toElement)
   {
      return new EventSubSortedSet(this, getDecorated().subSet(fromElement, toElement));
   }

   public SortedSet tailSet(E fromElement)
   {
      return new EventSubSortedSet(this, getDecorated().tailSet(fromElement));
   }
 
   protected static class EventSubSortedSet extends AbstractEventSortedSet
   {
      private static final long serialVersionUID = 7103404017576141323L;

      protected final AbstractEventSortedSet _parent;
      
      protected EventSubSortedSet(AbstractEventSortedSet parent, SortedSet decorated)
      {
         super(decorated);
         _parent = parent;
      }

      @Override
      protected void fireElementAdded(E element)
      {
         _parent.fireElementAdded(element);
      }

      @Override
      protected void fireElementReadded(E element)
      {
         _parent.fireElementReadded(element);
      }

      @Override
      protected void fireElementRemoved(E element)
      {
         _parent.fireElementRemoved(element);
      }
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy