/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.wps.web; import java.util.ArrayList; import java.util.List; import java.util.Locale; import org.apache.commons.lang.StringUtils; import org.apache.wicket.util.convert.IConverter; /** * Converts roles list as ";" separated string */ public class RolesConverter implements IConverter{ /** serialVersionUID */ private static final long serialVersionUID = -7814332099119849464L; private List<String> availableRoles; public RolesConverter(List<String> availableRoles) { this.availableRoles = availableRoles; } @Override public Object convertToObject(String value, Locale locale) { List<String> checkedRoles = new ArrayList<String>(); if(value != null && !value.isEmpty()){ String[] selectedRoles = value.split(";"); //Check roles string for(String role : selectedRoles){ if(availableRoles.contains(role)){ checkedRoles.add(role); } } } return checkedRoles; } @Override public String convertToString(Object value, Locale locale) { String roleStr = ""; if(value!=null && value instanceof List){ List roles = (List)value; roleStr = StringUtils.join(roles.toArray(), ";"); if(!roleStr.isEmpty()){ roleStr = roleStr + ";"; } } return roleStr; } }