/**
  * If value is null or value is default value then nothing is done. Otherwise the given value is
  * added as page parameter under the given key. Dates and TimePeriods are converted and can be
  * gotten by {@link #getPageParameter(PageParameters, String, Class)}.
  *
  * @param pageParameters
  * @param key
  * @param value
  * @see ClassHelper#isDefaultType(Class, Object)
  */
 public static void putPageParameter(
     final PageParameters pageParameters, final String key, final Object value) {
   if (value == null) {
     // Do not put null values to page parameters.
   } else if (ClassHelper.isDefaultType(value.getClass(), value)) {
     // Do not put default values to page parameters.
   } else if (value instanceof Date) {
     addOrReplaceParameter(pageParameters, key, ((Date) value).getTime());
   } else if (value instanceof TimePeriod) {
     addOrReplaceParameter(
         pageParameters,
         key,
         ((TimePeriod) value).getFromDate().getTime()
             + "-"
             + ((TimePeriod) value).getToDate().getTime());
   } else {
     addOrReplaceParameter(pageParameters, key, value);
   }
 }