in SdmxStructureParser/src/main/java/org/sdmxsource/sdmx/structureparser/builder/xmlBeans/v2/MetadataflowXmlBeanBuilder.java [58:155]
public MetadataflowType build(MetadataFlowBean buildFrom, Set<CategorisationBean> categorisations) throws SdmxException {
MetadataflowType builtObj = MetadataflowType.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 ref = refBean.getMaintainableReference();
if (validString(ref.getAgencyId())) {
categoryRefType.setCategorySchemeAgencyID(ref.getAgencyId());
}
if (validString(ref.getMaintainableId())) {
categoryRefType.setCategorySchemeID(ref.getMaintainableId());
}
if (validString(ref.getVersion())) {
categoryRefType.setCategorySchemeVersion(ref.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.getMetadataStructureRef() != null) {
MetadataStructureRefType mdsRefType = builtObj.addNewMetadataStructureRef();
CrossReferenceBean refBean = buildFrom.getMetadataStructureRef();
if (refBean != null) {
MaintainableRefBean mRef = refBean.getMaintainableReference();
if (validString(mRef.getAgencyId())) {
mdsRefType.setMetadataStructureAgencyID(mRef.getAgencyId());
}
if (validString(mRef.getMaintainableId())) {
mdsRefType.setMetadataStructureID(mRef.getMaintainableId());
}
if (validString(mRef.getVersion())) {
mdsRefType.setVersion(mRef.getVersion());
}
if (validString(refBean.getTargetUrn())) {
mdsRefType.setURN(refBean.getTargetUrn());
}
}
}
return builtObj;
}