public List build()

in SdmxStructureParser/src/main/java/org/sdmxsource/sdmx/structureparser/builder/query/impl/QueryBeanBuilderV2.java [369:547]


    public List<StructureReferenceBean> build(QueryMessageType queryMessage) {
        List<StructureReferenceBean> reutrnList = new ArrayList<StructureReferenceBean>();

        if (queryMessage.getQuery() != null) {
            QueryType queryType = queryMessage.getQuery();
            if (queryType.getAgencyWhereList() != null) {
                if (ObjectUtil.validCollection(queryMessage.getQuery().getAgencyWhereList())) {
                    throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "AgencyWhere");
                }
            }
            if (queryType.getCategorySchemeWhereList() != null) {
                for (CategorySchemeWhereType structQuery : queryType.getCategorySchemeWhereList()) {
                    String agencyId = structQuery.getAgencyID();
                    String maintId = structQuery.getID();
                    String version = structQuery.getVersion();
                    SDMX_STRUCTURE_TYPE structType = SDMX_STRUCTURE_TYPE.CATEGORY_SCHEME;
                    StructureReferenceBean refBean = new StructureReferenceBeanImpl(agencyId, maintId, version, structType);
                    reutrnList.add(refBean);
                }
            }
            if (queryType.getCodelistWhereList() != null) {
                for (CodelistWhereType structQuery : queryType.getCodelistWhereList()) {
                    String codelistId = null;
                    if (structQuery.getCodelist() != null) {
                        codelistId = structQuery.getCodelist().getId();
                    }
                    String agencyId = structQuery.getAgencyID();
                    String maintId = codelistId;
                    String version = structQuery.getVersion();
                    SDMX_STRUCTURE_TYPE structType = SDMX_STRUCTURE_TYPE.CODE_LIST;
                    StructureReferenceBean refBean = new StructureReferenceBeanImpl(agencyId, maintId, version, structType);
                    reutrnList.add(refBean);
                    if (structQuery.getOr() != null) {
                        throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "CodelistWhere/Or");
                    }
                    if (structQuery.getAnd() != null) {
                        throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "CodelistWhere/And");
                    }
                }
            }
            if (queryType.getConceptSchemeWhereList() != null) {
                for (ConceptSchemeWhereType structQuery : queryType.getConceptSchemeWhereList()) {
                    String agencyId = structQuery.getAgencyID();
                    String maintId = structQuery.getID();
                    String version = structQuery.getVersion();
                    SDMX_STRUCTURE_TYPE structType = SDMX_STRUCTURE_TYPE.CONCEPT_SCHEME;
                    StructureReferenceBean refBean = new StructureReferenceBeanImpl(agencyId, maintId, version, structType);
                    reutrnList.add(refBean);
                }
            }
            if (queryType.getConceptWhereList() != null) {
                for (ConceptWhereType structQuery : queryType.getConceptWhereList()) {
                    String agencyId = structQuery.getAgencyID();
                    String conceptId = structQuery.getConcept();
                    SDMX_STRUCTURE_TYPE structType = SDMX_STRUCTURE_TYPE.CONCEPT;
                    StructureReferenceBean refBean = new StructureReferenceBeanImpl(agencyId, ConceptSchemeBean.DEFAULT_SCHEME_ID, ConceptSchemeBean.DEFAULT_SCHEME_VERSION, structType, conceptId);
                    reutrnList.add(refBean);
                    if (structQuery.getOr() != null) {
                        throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "ConceptWhere/Or");
                    }
                    if (structQuery.getAnd() != null) {
                        throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "ConceptWhere/And");
                    }
                }
            }
            if (queryType.getDataflowWhereList() != null) {
                for (DataflowWhereType structQuery : queryType.getDataflowWhereList()) {
                    String agencyId = structQuery.getAgencyID();
                    String maintId = structQuery.getID();
                    String version = structQuery.getVersion();
                    SDMX_STRUCTURE_TYPE structType = SDMX_STRUCTURE_TYPE.DATAFLOW;
                    StructureReferenceBean refBean = new StructureReferenceBeanImpl(agencyId, maintId, version, structType);
                    reutrnList.add(refBean);
                }
            }
            if (queryType.getDataProviderWhereList() != null && queryType.getDataProviderWhereList().size() > 0) {
                throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "DataProviderWhere");
            }
            if (queryType.getDataWhereList() != null && queryType.getDataWhereList().size() > 0) {
                throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "DataWhere");
            }
            if (queryType.getHierarchicalCodelistWhereList() != null) {
                for (HierarchicalCodelistWhereType structQuery : queryType.getHierarchicalCodelistWhereList()) {
                    String agencyId = structQuery.getAgencyID();
                    String maintId = structQuery.getID();
                    String version = structQuery.getVersion();
                    SDMX_STRUCTURE_TYPE structType = SDMX_STRUCTURE_TYPE.HIERARCHICAL_CODELIST;
                    StructureReferenceBean refBean = new StructureReferenceBeanImpl(agencyId, maintId, version, structType);
                    reutrnList.add(refBean);
                }
            }
            if (queryType.getKeyFamilyWhereList() != null) {
                for (KeyFamilyWhereType structQuery : queryType.getKeyFamilyWhereList()) {
                    String agencyId = structQuery.getAgencyID();
                    String maintId = structQuery.getKeyFamily();
                    String version = structQuery.getVersion();
                    SDMX_STRUCTURE_TYPE structType = SDMX_STRUCTURE_TYPE.DSD;
                    StructureReferenceBean refBean = new StructureReferenceBeanImpl(agencyId, maintId, version, structType);
                    reutrnList.add(refBean);

                    if (structQuery.getOr() != null) {
                        throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "KeyFamilyWhere/Or");
                    }
                    if (structQuery.getAnd() != null) {
                        throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "KeyFamilyWhere/And");
                    }
                    if (structQuery.getDimension() != null) {
                        throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "KeyFamilyWhere/Dimension");
                    }
                    if (structQuery.getAttribute() != null) {
                        throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "KeyFamilyWhere/Attribute");
                    }
                    if (structQuery.getCodelist() != null) {
                        throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "KeyFamilyWhere/Codelist");
                    }
                    if (structQuery.getCategory() != null) {
                        throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "KeyFamilyWhere/Category");
                    }
                    if (structQuery.getConcept() != null) {
                        throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "KeyFamilyWhere/Concept");
                    }
                }
            }
            if (queryType.getMetadataflowWhereList() != null) {
                for (MetadataflowWhereType structQuery : queryType.getMetadataflowWhereList()) {
                    String agencyId = structQuery.getAgencyID();
                    String maintId = structQuery.getID();
                    String version = structQuery.getVersion();
                    SDMX_STRUCTURE_TYPE structType = SDMX_STRUCTURE_TYPE.METADATA_FLOW;
                    StructureReferenceBean refBean = new StructureReferenceBeanImpl(agencyId, maintId, version, structType);
                    reutrnList.add(refBean);
                }
            }
            if (queryType.getMetadataWhereList() != null && queryType.getMetadataWhereList().size() > 0) {
                throw new SdmxNotImplementedException(ExceptionCode.UNSUPPORTED, "DataWhere");
            }
            if (queryType.getOrganisationSchemeWhereList() != null) {
                for (OrganisationSchemeWhereType structQuery : queryType.getOrganisationSchemeWhereList()) {
                    String agencyId = structQuery.getAgencyID();
                    String maintId = structQuery.getID();
                    String version = structQuery.getVersion();
                    SDMX_STRUCTURE_TYPE structType = SDMX_STRUCTURE_TYPE.ORGANISATION_UNIT_SCHEME;
                    StructureReferenceBean refBean = new StructureReferenceBeanImpl(agencyId, maintId, version, structType);
                    reutrnList.add(refBean);
                }
            }
            if (queryType.getProcessWhereList() != null) {
                for (ProcessWhereType structQuery : queryType.getProcessWhereList()) {
                    String agencyId = structQuery.getAgencyID();
                    String maintId = structQuery.getID();
                    String version = structQuery.getVersion();
                    SDMX_STRUCTURE_TYPE structType = SDMX_STRUCTURE_TYPE.PROCESS;
                    StructureReferenceBean refBean = new StructureReferenceBeanImpl(agencyId, maintId, version, structType);
                    reutrnList.add(refBean);
                }
            }
            if (queryType.getStructureSetWhereList() != null) {
                for (StructureSetWhereType structQuery : queryType.getStructureSetWhereList()) {
                    String agencyId = structQuery.getAgencyID();
                    String maintId = structQuery.getID();
                    String version = structQuery.getVersion();
                    SDMX_STRUCTURE_TYPE structType = SDMX_STRUCTURE_TYPE.STRUCTURE_SET;
                    StructureReferenceBean refBean = new StructureReferenceBeanImpl(agencyId, maintId, version, structType);
                    reutrnList.add(refBean);
                }
            }
            if (queryType.getReportingTaxonomyWhereList() != null) {
                for (ReportingTaxonomyWhereType structQuery : queryType.getReportingTaxonomyWhereList()) {
                    String agencyId = structQuery.getAgencyID();
                    String maintId = structQuery.getID();
                    String version = structQuery.getVersion();
                    SDMX_STRUCTURE_TYPE structType = SDMX_STRUCTURE_TYPE.REPORTING_TAXONOMY;
                    StructureReferenceBean refBean = new StructureReferenceBeanImpl(agencyId, maintId, version, structType);
                    reutrnList.add(refBean);
                }
            }
        }
        return reutrnList;
    }