Java tutorial
/* * [y] hybris Platform * * Copyright (c) 2000-2013 hybris AG * All rights reserved. * * This software is the confidential and proprietary information of hybris * ("Confidential Information"). You shall not disclose such Confidential * Information and shall use it only in accordance with the terms of the * license agreement you entered into with hybris. * * */ package de.hybris.platform.b2bacceleratorfacades.company.populators; import de.hybris.platform.b2b.model.B2BCustomerModel; import de.hybris.platform.b2b.model.B2BUnitModel; import de.hybris.platform.b2b.model.B2BUserGroupModel; import de.hybris.platform.b2b.services.B2BUnitService; import de.hybris.platform.b2bacceleratorfacades.company.data.UserData; import de.hybris.platform.b2bacceleratorfacades.order.data.B2BUnitData; import de.hybris.platform.b2bacceleratorservices.strategies.B2BUserGroupsLookUpStrategy; import de.hybris.platform.converters.Populator; import de.hybris.platform.core.model.security.PrincipalGroupModel; import de.hybris.platform.servicelayer.i18n.I18NService; import de.hybris.platform.servicelayer.user.UserService; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.PredicateUtils; import org.springframework.beans.factory.annotation.Required; import org.springframework.context.MessageSource; /** * Populates {@link UserData} from a {@link B2BCustomerModel} */ public class B2BUserPopulator implements Populator<B2BCustomerModel, UserData> { private B2BUnitService<B2BUnitModel, B2BCustomerModel> b2BUnitService; private UserService userService; private MessageSource messageSource; private I18NService i18nService; private B2BUserGroupsLookUpStrategy b2BUserGroupsLookUpStrategy; @Override public void populate(final B2BCustomerModel b2BCustomerModel, final UserData userData) { final B2BUnitModel parentUnit = getB2BUnitService().getParent(b2BCustomerModel); userData.setUid(b2BCustomerModel.getUid()); userData.setNormalizedUid(userData.getUid().replaceAll("\\W", "_")); userData.setName(b2BCustomerModel.getName()); final B2BUnitData b2BUnitData = new B2BUnitData(); b2BUnitData.setUid(parentUnit.getUid()); b2BUnitData.setName(parentUnit.getLocName()); b2BUnitData.setActive(Boolean.TRUE.equals(parentUnit.getActive())); userData.setUnit(b2BUnitData); userData.setActive(Boolean.TRUE.equals(b2BCustomerModel.getActive())); populateRoles(b2BCustomerModel, userData); } protected void populateRoles(final B2BCustomerModel source, final UserData target) { final List<String> roles = new ArrayList<String>(); final Set<PrincipalGroupModel> roleModels = new HashSet<PrincipalGroupModel>(source.getGroups()); CollectionUtils.filter(roleModels, PredicateUtils.notPredicate(PredicateUtils.instanceofPredicate(B2BUnitModel.class))); CollectionUtils.filter(roleModels, PredicateUtils.notPredicate(PredicateUtils.instanceofPredicate(B2BUserGroupModel.class))); for (final PrincipalGroupModel role : roleModels) { // only display allowed usergroups if (getB2BUserGroupsLookUpStrategy().getUserGroups().contains(role.getUid())) { roles.add(role.getUid()); } } target.setRoles(roles); } protected B2BUnitService<B2BUnitModel, B2BCustomerModel> getB2BUnitService() { return b2BUnitService; } @Required public void setB2BUnitService(final B2BUnitService<B2BUnitModel, B2BCustomerModel> b2BUnitService) { this.b2BUnitService = b2BUnitService; } protected UserService getUserService() { return userService; } @Required public void setUserService(final UserService userService) { this.userService = userService; } protected MessageSource getMessageSource() { return messageSource; } @Required public void setMessageSource(final MessageSource messageSource) { this.messageSource = messageSource; } protected I18NService getI18nService() { return i18nService; } @Required public void setI18nService(final I18NService i18nService) { this.i18nService = i18nService; } protected B2BUserGroupsLookUpStrategy getB2BUserGroupsLookUpStrategy() { return b2BUserGroupsLookUpStrategy; } @Required public void setB2BUserGroupsLookUpStrategy(final B2BUserGroupsLookUpStrategy b2BUserGroupsLookUpStrategy) { this.b2BUserGroupsLookUpStrategy = b2BUserGroupsLookUpStrategy; } }