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;
}