/* * Hibernate Validator, declare and validate application constraints * * License: Apache License, Version 2.0 * See the license.txt file in the root directory or <http://www.apache.org/licenses/LICENSE-2.0>. */ package org.hibernate.validator.internal.xml; import static org.hibernate.validator.internal.util.CollectionHelper.newHashMap; import java.util.List; import java.util.Map; import org.hibernate.validator.internal.util.CollectionHelper; import org.hibernate.validator.internal.util.logging.Log; import org.hibernate.validator.internal.util.logging.LoggerFactory; import org.hibernate.validator.internal.xml.binding.GroupConversionType; /** * Builder for group conversions. * * @author Hardy Ferentschik */ class GroupConversionBuilder { private static final Log LOG = LoggerFactory.make(); private final ClassLoadingHelper classLoadingHelper; GroupConversionBuilder(ClassLoadingHelper classLoadingHelper) { this.classLoadingHelper = classLoadingHelper; } Map<Class<?>, Class<?>> buildGroupConversionMap(List<GroupConversionType> groupConversionTypes, String defaultPackage) { Map<Class<?>, Class<?>> groupConversionMap = newHashMap(); for ( GroupConversionType groupConversionType : groupConversionTypes ) { Class<?> fromClass = classLoadingHelper.loadClass( groupConversionType.getFrom(), defaultPackage ); Class<?> toClass = classLoadingHelper.loadClass( groupConversionType.getTo(), defaultPackage ); if ( groupConversionMap.containsKey( fromClass ) ) { throw LOG.getMultipleGroupConversionsForSameSourceException( fromClass, CollectionHelper.<Class<?>>asSet( groupConversionMap.get( fromClass ), toClass ) ); } groupConversionMap.put( fromClass, toClass ); } return groupConversionMap; } }