package org.apereo.cas.mgmt.services.web.factory; import org.apereo.cas.mgmt.services.web.beans.RegisteredServiceEditBean.FormData; import org.apereo.services.persondir.IPersonAttributeDao; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Set; /** * Add all available attribute names to {@link FormData} for use by the edit service form. * * @author Daniel Frett * @since 4.2 */ public class AttributeFormDataPopulator implements FormDataPopulator { private IPersonAttributeDao personAttributeDao; public AttributeFormDataPopulator() { } /** * Default constructor. * * @param personAttributeDao the attribute source to retrieve available attribute names from. */ public AttributeFormDataPopulator(final IPersonAttributeDao personAttributeDao) { this.personAttributeDao = personAttributeDao; } @Override public void populateFormData(final FormData formData) { final Set<String> possibleUserAttributeNames = this.personAttributeDao.getPossibleUserAttributeNames(); final List<String> possibleAttributeNames = new ArrayList<>(); if (possibleUserAttributeNames != null) { possibleAttributeNames.addAll(possibleUserAttributeNames); Collections.sort(possibleAttributeNames); } formData.setAvailableAttributes(possibleAttributeNames); } }