code: @Override
      public E getValue(final int index)
      {
          if (index < 0 || values == null || values.size() == 0)
              if (defaultValues != null && defaultValues.size() > index)
              {
                  if (index < 0)
                      return defaultValues.get(0);
                  return defaultValues.get(index);
              }
          if (index >= 0)
              if (values.size() > index)
                  return values.get(index);
          return null;
      }
docs: {@inheritDoc}