public DataflowType build()

in SdmxStructureParser/src/main/java/org/sdmxsource/sdmx/structureparser/builder/xmlBeans/v2/DataflowXmlBeanBuilder.java [58:153]


    public DataflowType build(DataflowBean buildFrom, Set<CategorisationBean> categorisations) throws SdmxException {
        DataflowType builtObj = DataflowType.Factory.newInstance();
        if (validString(buildFrom.getAgencyId())) {
            builtObj.setAgencyID(buildFrom.getAgencyId());
        }
        if (validString(buildFrom.getId())) {
            builtObj.setId(buildFrom.getId());
        }
        if (buildFrom.getUri() != null) {
            builtObj.setUri(buildFrom.getUri().toString());
        } else if (buildFrom.getStructureURL() != null) {
            builtObj.setUri(buildFrom.getStructureURL().toString());
        } else if (buildFrom.getServiceURL() != null) {
            builtObj.setUri(buildFrom.getStructureURL().toString());
        }
        if (validString(buildFrom.getUrn())) {
            builtObj.setUrn(buildFrom.getUrn());
        }
        if (validString(buildFrom.getVersion())) {
            builtObj.setVersion(buildFrom.getVersion());
        }
        if (buildFrom.getStartDate() != null) {
            builtObj.setValidFrom(buildFrom.getStartDate().getDate());
        }
        if (buildFrom.getEndDate() != null) {
            builtObj.setValidTo(buildFrom.getEndDate().getDate());
        }
        if (validCollection(buildFrom.getNames())) {
            builtObj.setNameArray(getTextType(buildFrom.getNames()));
        }
        if (validCollection(buildFrom.getDescriptions())) {
            builtObj.setDescriptionArray(getTextType(buildFrom.getDescriptions()));
        }
        if (hasAnnotations(buildFrom)) {
            builtObj.setAnnotations(getAnnotationsType(buildFrom));
        }
        if (buildFrom.isExternalReference().isSet()) {
            builtObj.setIsExternalReference(buildFrom.isExternalReference().isTrue());
        }
        if (buildFrom.isFinal().isSet()) {
            builtObj.setIsFinal(buildFrom.isFinal().isTrue());
        }
        if (ObjectUtil.validCollection(categorisations)) {
            for (CategorisationBean currentCategoryRef : categorisations) {
                CategoryRefType categoryRefType = builtObj.addNewCategoryRef();
                CrossReferenceBean refBean = currentCategoryRef.getCategoryReference();
                if (refBean != null) {
                    MaintainableRefBean mRef = refBean.getMaintainableReference();
                    if (validString(mRef.getAgencyId())) {
                        categoryRefType.setCategorySchemeAgencyID(mRef.getAgencyId());
                    }
                    if (validString(mRef.getMaintainableId())) {
                        categoryRefType.setCategorySchemeID(mRef.getMaintainableId());
                    }
                    if (validString(mRef.getVersion())) {
                        categoryRefType.setCategorySchemeVersion(mRef.getVersion());
                    }
                }

                CategoryIDType idType = null;
                IdentifiableRefBean childRef = refBean.getChildReference();
                int i = 0;
                while (childRef != null) {
                    if (i == 0) {
                        idType = categoryRefType.addNewCategoryID();
                    } else {
                        idType = idType.addNewCategoryID();
                    }
                    idType.setID(childRef.getId());
                    childRef = childRef.getChildReference();
                    i++;
                }
                if (validString(refBean.getTargetUrn())) {
                    categoryRefType.setURN(refBean.getTargetUrn());
                }
            }
        }
        if (buildFrom.getDataStructureRef() != null) {
            KeyFamilyRefType kfRType = builtObj.addNewKeyFamilyRef();
            CrossReferenceBean kfRef = buildFrom.getDataStructureRef();
            MaintainableRefBean refBean = kfRef.getMaintainableReference();
            if (validString(refBean.getAgencyId())) {
                kfRType.setKeyFamilyAgencyID(refBean.getAgencyId());
            }
            if (validString(refBean.getMaintainableId())) {
                kfRType.setKeyFamilyID(refBean.getMaintainableId());
            }
            if (validString(refBean.getVersion())) {
                kfRType.setVersion(refBean.getVersion());
            }
            if (validString(kfRef.getTargetUrn())) {
                kfRType.setURN(kfRef.getTargetUrn());
            }
        }
        return builtObj;
    }