in SdmxStructureParser/src/main/java/org/sdmxsource/sdmx/structureparser/builder/xmlBeans/registry/response/impl/v2/QueryStructureResponseBuilderV2.java [142:314]
public RegistryInterfaceDocument buildSuccessResponse(SdmxBeans beans, String warningMessage) throws SdmxException {
RegistryInterfaceDocument responseType = RegistryInterfaceDocument.Factory.newInstance();
RegistryInterfaceType regInterface = responseType.addNewRegistryInterface();
QueryStructureResponseType returnType = regInterface.addNewQueryStructureResponse();
HeaderType headerType = null;
if (beans.getHeader() != null) {
headerType = headerXmlBeansBuilder.build(beans.getHeader());
regInterface.setHeader(headerType);
} else {
headerType = regInterface.addNewHeader();
V2Helper.setHeader(headerType, beans);
}
StatusMessageType statusMessage = returnType.addNewStatusMessage();
if (ObjectUtil.validString(warningMessage) || !ObjectUtil.validCollection(beans.getAllMaintainables())) {
statusMessage.setStatus(StatusType.WARNING);
TextType tt = statusMessage.addNewMessageText();
if (ObjectUtil.validString(warningMessage)) {
tt.setStringValue(warningMessage);
} else {
tt.setStringValue("No Structures Match The Query Parameters");
}
} else {
statusMessage.setStatus(StatusType.SUCCESS);
}
Set<CategorisationBean> categorisations = beans.getCategorisations();
//GET CATEGORY SCHEMES
if (beans.getCategorySchemes().size() > 0) {
CategorySchemesType catSchemesType = returnType.addNewCategorySchemes();
for (CategorySchemeBean cateogrySchemeBean : beans.getCategorySchemes()) {
Set<CategorisationBean> matchingCategorisations = new HashSet<CategorisationBean>();
for (CategorisationBean cat : categorisations) {
if (MaintainableUtil.match(cateogrySchemeBean, cat.getCategoryReference())) {
matchingCategorisations.add(cat);
}
}
catSchemesType.getCategorySchemeList().add(categorySchemeXmlBeanBuilder.build(cateogrySchemeBean, categorisations));
}
}
//GET CODELISTS
if (beans.getCodelists().size() > 0) {
CodeListsType codeListsType = returnType.addNewCodeLists();
for (CodelistBean codelistBean : beans.getCodelists()) {
codeListsType.getCodeListList().add(codelistXmlBeanBuilder.build(codelistBean));
}
}
//CONCEPT SCHEMES
if (beans.getConceptSchemes().size() > 0) {
ConceptsType conceptsType = returnType.addNewConcepts();
for (ConceptSchemeBean conceptSchemeBean : beans.getConceptSchemes()) {
conceptsType.getConceptSchemeList().add(conceptSchemeXmlBeanBuilder.build(conceptSchemeBean));
}
}
//DATAFLOWS
if (beans.getDataflows().size() > 0) {
DataflowsType dataflowsType = returnType.addNewDataflows();
for (DataflowBean currentBean : beans.getDataflows()) {
dataflowsType.getDataflowList().add(dataflowXmlBeanBuilder.build(currentBean, getCategorisations(currentBean, categorisations)));
}
}
//HIERARCIC CODELIST
if (beans.getHierarchicalCodelists().size() > 0) {
HierarchicalCodelistsType hierarchicalCodelistsType = returnType.addNewHierarchicalCodelists();
for (HierarchicalCodelistBean currentBean : beans.getHierarchicalCodelists()) {
hierarchicalCodelistsType.getHierarchicalCodelistList().add(hierarchicalCodelistXmlBeanBuilder.build(currentBean));
}
}
//KEY FAMILY
if (beans.getDataStructures().size() > 0) {
KeyFamiliesType keyFamiliesType = returnType.addNewKeyFamilies();
for (DataStructureBean currentBean : beans.getDataStructures()) {
keyFamiliesType.getKeyFamilyList().add(dataStructureXmlBeanBuilder.build(currentBean));
}
}
//METADATA FLOW
if (beans.getMetadataflows().size() > 0) {
MetadataflowsType metadataflowsType = returnType.addNewMetadataflows();
for (MetadataFlowBean currentBean : beans.getMetadataflows()) {
metadataflowsType.getMetadataflowList().add(metadataflowXmlBeanBuilder.build(currentBean, getCategorisations(currentBean, categorisations)));
}
}
//METADATA STRUCTURE
if (beans.getMetadataStructures().size() > 0) {
MetadataStructureDefinitionsType msdsType = returnType.addNewMetadataStructureDefinitions();
for (MetadataStructureDefinitionBean currentBean : beans.getMetadataStructures()) {
msdsType.getMetadataStructureDefinitionList().add(metadataStructureDefinitionXmlBeansBuilder.build(currentBean));
}
}
OrganisationSchemesType orgSchemesType = null;
//AGENCY SCHEMES
if (beans.getAgenciesSchemes().size() > 0) {
if (orgSchemesType == null) {
orgSchemesType = returnType.addNewOrganisationSchemes();
}
for (AgencySchemeBean currentBean : beans.getAgenciesSchemes()) {
orgSchemesType.getOrganisationSchemeList().add(organisationSchemeXmlBeanBuilder.build(currentBean));
}
}
//DATA CONSUMER SCHEMES
if (beans.getDataConsumerSchemes().size() > 0) {
if (orgSchemesType == null) {
orgSchemesType = returnType.addNewOrganisationSchemes();
}
for (DataConsumerSchemeBean currentBean : beans.getDataConsumerSchemes()) {
orgSchemesType.getOrganisationSchemeList().add(organisationSchemeXmlBeanBuilder.build(currentBean));
}
}
//DATA PROVIDER SCHEMES
if (beans.getDataProviderSchemes().size() > 0) {
if (orgSchemesType == null) {
orgSchemesType = returnType.addNewOrganisationSchemes();
}
for (DataProviderSchemeBean currentBean : beans.getDataProviderSchemes()) {
orgSchemesType.getOrganisationSchemeList().add(organisationSchemeXmlBeanBuilder.build(currentBean));
}
}
//PROCESSES
if (beans.getProcesses().size() > 0) {
ProcessesType processesType = returnType.addNewProcesses();
for (ProcessBean currentBean : beans.getProcesses()) {
processesType.getProcessList().add(processXmlBeanBuilder.build(currentBean));
}
}
//STRUCTURE SETS
if (beans.getStructureSets().size() > 0) {
StructureSetsType structureSetsType = returnType.addNewStructureSets();
for (StructureSetBean currentBean : beans.getStructureSets()) {
structureSetsType.getStructureSetList().add(structureSetXmlBeanBuilder.build(currentBean));
}
}
//REPORTING TAXONOMIES
if (beans.getReportingTaxonomys().size() > 0) {
ReportingTaxonomiesType reportingTaxonomiesType = returnType.addNewReportingTaxonomies();
for (ReportingTaxonomyBean currentBean : beans.getReportingTaxonomys()) {
reportingTaxonomiesType.getReportingTaxonomyList().add(reportingTaxonomyXmlBeanBuilder.build(currentBean));
}
}
if (beans.getAttachmentConstraints().size() > 0) {
throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "Attachment Constraint at SMDX v2.0 - please use SDMX v2.1");
}
if (beans.getContentConstraintBeans().size() > 0) {
throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "Content Constraint at SMDX v2.0 - please use SDMX v2.1");
}
if (beans.getMetadataStructures().size() > 0) {
throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "Metadata Structure Definition at SMDX v2.0 - please use SDMX v2.1");
}
return responseType;
}