}
}
private <T> void initXmlConfiguration(Set<InputStream> mappingStreams) {
XmlMappingParser mappingParser = new XmlMappingParser( constraintHelper );
mappingParser.parse( mappingStreams );
Set<Class<?>> xmlConfiguredClasses = mappingParser.getXmlConfiguredClasses();
AnnotationIgnores annotationIgnores = mappingParser.getAnnotationIgnores();
for ( Class<?> clazz : xmlConfiguredClasses ) {
@SuppressWarnings("unchecked")
Class<T> beanClass = (Class<T>) clazz;
List<Class<?>> classes = ReflectionHelper.computeClassHierarchy( beanClass, true );
Map<Class<?>, List<BeanMetaConstraint<?>>> constraints = newHashMap();
Set<Member> cascadedMembers = newHashSet();
// we need to collect all constraints which apply for a single class. Due to constraint inheritance
// some constraints might be configured in super classes or interfaces. The xml configuration does not
// imply any order so we have to check whether any of the super classes or interfaces of a given bean has
// as well been configured via xml
for ( Class<?> classInHierarchy : classes ) {
if ( xmlConfiguredClasses.contains( classInHierarchy ) ) {
addXmlConfiguredConstraints( mappingParser, beanClass, classInHierarchy, constraints );
addXmlCascadedMember( mappingParser, classInHierarchy, cascadedMembers );
}
}
BeanMetaDataImpl<T> metaData = new BeanMetaDataImpl<T>(
beanClass,
constraintHelper,
mappingParser.getDefaultSequenceForClass( beanClass ),
null,
constraints,
Collections.<AggregatedMethodMetaData>emptySet(),
cascadedMembers,
annotationIgnores,