@Override
   public T setValue( T newValue )
   {
      T previousValue = value;

      value = newValue;

      if (previousValue == null && value != null)
      {
         addSize( 1 );
      }
      else if (previousValue != null && value == null)
      {
         addSize( -1 );
      }

      return previousValue;
   }