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

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

package net.sf.javagimmicks.collections.event;

import java.util.Comparator;
import java.util.SortedMap;

public abstract class AbstractEventSortedMap extends AbstractEventMap implements SortedMap
{
   private static final long serialVersionUID = 87301004221670854L;

   public AbstractEventSortedMap(SortedMap decorated)
   {
      super(decorated);
   }

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

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

   public K firstKey()
   {
      return getDecorated().firstKey();
   }

   public K lastKey()
   {
      return getDecorated().lastKey();
   }

   public SortedMap headMap(K toKey)
   {
      return new EventSubSortedMap(this, getDecorated().headMap(toKey));
   }

   public SortedMap subMap(K fromKey, K toKey)
   {
      return new EventSubSortedMap(this, getDecorated().subMap(fromKey, toKey));
   }

   public SortedMap tailMap(K fromKey)
   {
      return new EventSubSortedMap(this, getDecorated().tailMap(fromKey));
   }
   
   protected static class EventSubSortedMap extends AbstractEventSortedMap
   {
      private static final long serialVersionUID = -6673032656718478269L;

      protected final AbstractEventSortedMap _parent;

      protected EventSubSortedMap(AbstractEventSortedMap parent, SortedMap decorated)
      {
         super(decorated);
         _parent = parent;
      }

      @Override
      protected void fireEntryAdded(K key, V value)
      {
         _parent.fireEntryAdded(key, value);
      }

      @Override
      protected void fireEntryRemoved(K key, V value)
      {
         _parent.fireEntryRemoved(key, value);
      }

      @Override
      protected void fireEntryUpdated(K key, V oldValue, V newValue)
      {
         _parent.fireEntryUpdated(key, oldValue, newValue);
      }
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy