Search code examples
javawicketwicket-1.5

Migrating wicket 1.4 to 1.5 - PageParameters.getAsEnum()


In wicket 1.4 PageParameters has methods like getAsEnum(String key, Class<T> eClass, getAsInteger(String key, int defaultValue)

In official migration guide theres this hint

org.apache.wicket.PageParameters.getInt(String) - org.apache.wicket.request.mapper.parameter.PageParameters.get(String).toInt()

That explains how to get Int, Long etc if we were giving only String parameter but how do I refactor something like this?

params.getAsEnum("mode", PageMode.DISPLAY);

EDIT: I forget that you can call .toEnum() on StringValue. Sorry for mess.


Solution

  • I know of several ways how to do that:

    // two interchangeable calls, first is more generic
    getPageParameters().get("mode").to(PageMode.class);    
    getPageParameters().get("mode").toEnum(PageMode.class);
    // if you would like to have a PageMode.DISPLAY as default
    getPageParameters().get("mode").toEnum(PageMode.DISPLAY);