public RegistryResponseType provideAndRegisterDocumentSetB( ProvideAndRegisterDocumentSetRequestType msg, AssertionType assertion) { LOG.debug("Begin provideAndRegisterDocumentSetb()"); XDRHelper helper = new XDRHelper(); RegistryErrorList errorList = helper.validateDocumentMetaData(msg); RegistryResponseType result = null; if (errorList.getHighestSeverity().equals(NhincConstants.XDS_REGISTRY_ERROR_SEVERITY_ERROR)) { result = helper.createErrorResponse(errorList); } else { LOG.info(" Request contained " + msg.getDocument().size() + " documents."); LOG.info(" Request Id: " + msg.getSubmitObjectsRequest().getId()); List<String> recips = helper.getIntendedRecepients(msg); if (recips != null) { List<String> xdrBeans = helper.getRoutingBeans(recips); RoutingObjectFactory factory = new RoutingObjectFactory(); for (String bean : xdrBeans) { LOG.debug("Bean name = " + bean); XDRRouting proxy = factory.getNhinXDRRouting(bean); result = proxy.provideAndRegisterDocumentSetB(msg, assertion); } } else { LOG.debug("No beans to forward the message to"); result = helper.createPositiveAck(); } } return result; }