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

net.sf.javagimmicks.collections.transformer.TransformingRingCursor Maven / Gradle / Ivy

/**
 * 
 */
package net.sf.javagimmicks.collections.transformer;

import net.sf.javagimmicks.collections.AbstractRingCursor;
import net.sf.javagimmicks.collections.RingCursor;
import net.sf.javagimmicks.transform.Transformer;
import net.sf.javagimmicks.transform.Transforming;

class TransformingRingCursor
   extends AbstractRingCursor
   implements Transforming
{
   protected final RingCursor _internalRingCursor;
   private final Transformer _transformer;
   
   /**
    * @deprecated Use TranformerUtils.decorate() instead
    */
   @Deprecated
   public TransformingRingCursor(RingCursor ringCursor, Transformer transformer)
   {
      _internalRingCursor = ringCursor;
      _transformer = transformer;
   }
   
   public Transformer getTransformer()
   {
      return _transformer;
   }
   
   public int size()
   {
      return _internalRingCursor.size();
   }

   public T get()
   {
      return getTransformer().transform(_internalRingCursor.get());
   }

   public void insertAfter(T value)
   {
      throw new UnsupportedOperationException();
   }

   public void insertBefore(T value)
   {
      throw new UnsupportedOperationException();
   }

   public T next()
   {
      return getTransformer().transform(_internalRingCursor.next());
   }

   public T previous()
   {
      return getTransformer().transform(_internalRingCursor.previous());
   }

   public T remove()
   {
      return getTransformer().transform(_internalRingCursor.remove());
   }

   public RingCursor cursor()
   {
      return TransformerUtils.decorate(_internalRingCursor.cursor(), getTransformer());
   }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy