/** * Parses the given set of input stream representing XML constraint mappings. * * @param mappingStreams The streams to parse. Must support the mark/reset contract. */ public final void parse(Set<InputStream> mappingStreams) { try { JAXBContext jc = JAXBContext.newInstance(ConstraintMappingsType.class); for (InputStream in : mappingStreams) { String schemaVersion = xmlParserHelper.getSchemaVersion("constraint mapping file", in); String schemaResourceName = getSchemaResourceName(schemaVersion); Schema schema = xmlParserHelper.getSchema(schemaResourceName); Unmarshaller unmarshaller = jc.createUnmarshaller(); unmarshaller.setSchema(schema); ConstraintMappingsType mapping = getValidationConfig(in, unmarshaller); String defaultPackage = mapping.getDefaultPackage(); parseConstraintDefinitions(mapping.getConstraintDefinition(), defaultPackage); for (BeanType bean : mapping.getBean()) { Class<?> beanClass = getClass(bean.getClazz(), defaultPackage); checkClassHasNotBeenProcessed(processedClasses, beanClass); annotationProcessingOptions.ignoreAnnotationConstraintForClass( beanClass, bean.getIgnoreAnnotations()); parseClassLevelOverrides(bean.getClassType(), beanClass, defaultPackage); parseFieldLevelOverrides(bean.getField(), beanClass, defaultPackage); parsePropertyLevelOverrides(bean.getGetter(), beanClass, defaultPackage); processedClasses.add(beanClass); } } } catch (JAXBException e) { throw log.getErrorParsingMappingFileException(e); } }
public final void parse(Set<InputStream> mappingStreams) { for (InputStream in : mappingStreams) { ConstraintMappingsType mapping = getValidationConfig(in); String defaultPackage = mapping.getDefaultPackage(); parseConstraintDefinitions(mapping.getConstraintDefinition(), defaultPackage); for (BeanType bean : mapping.getBean()) { Class<?> beanClass = getClass(bean.getClazz(), defaultPackage); checkClassHasNotBeenProcessed(processedClasses, beanClass); annotationIgnores.setDefaultIgnoreAnnotation(beanClass, bean.getIgnoreAnnotations()); parseClassLevelOverrides(bean.getClassType(), beanClass, defaultPackage); parseFieldLevelOverrides(bean.getField(), beanClass, defaultPackage); parsePropertyLevelOverrides(bean.getGetter(), beanClass, defaultPackage); processedClasses.add(beanClass); } } }