use of org.n52.shetland.iso.gmd.AbstractMDIdentification in project arctic-sea by 52North.
the class Iso19139GmdEncoder method encodeMDMetadata.
private XmlObject encodeMDMetadata(MDMetadata mdMetadata, EncodingContext context) throws EncodingException {
if (mdMetadata.isSetSimpleAttrs()) {
MDMetadataPropertyType mdmpt = MDMetadataPropertyType.Factory.newInstance(getXmlOptions());
mdmpt.setHref(mdMetadata.getSimpleAttrs().getHref());
if (mdMetadata.getSimpleAttrs().isSetTitle()) {
mdmpt.setTitle(mdMetadata.getSimpleAttrs().getTitle());
}
if (mdMetadata.getSimpleAttrs().isSetRole()) {
mdmpt.setRole(mdMetadata.getSimpleAttrs().getRole());
}
return mdmpt;
}
MDMetadataType mdmt = MDMetadataType.Factory.newInstance(getXmlOptions());
encodeAbstractObject(mdmt, mdMetadata);
// add contacts
for (CiResponsibleParty contact : mdMetadata.getContact()) {
mdmt.addNewContact().set(encodeResponsibleParty(contact, EncodingContext.of(XmlBeansEncodingFlags.PROPERTY_TYPE, true)));
}
// add dateStamp
mdmt.addNewDateStamp().setDateTime(mdMetadata.getDateStamp().toCalendar(Locale.ROOT));
// add identificationInfo
for (AbstractMDIdentification identificationInfo : mdMetadata.getIdentificationInfo()) {
if (identificationInfo.isSetSimpleAttrs()) {
MDIdentificationPropertyType mdipt = mdmt.addNewIdentificationInfo();
mdipt.setHref(identificationInfo.getSimpleAttrs().getHref());
if (identificationInfo.getSimpleAttrs().isSetTitle()) {
mdipt.setTitle(identificationInfo.getSimpleAttrs().getTitle());
}
if (identificationInfo.getSimpleAttrs().isSetRole()) {
mdipt.setRole(identificationInfo.getSimpleAttrs().getRole());
}
} else {
mdmt.addNewIdentificationInfo().set(encode(identificationInfo, EncodingContext.of(XmlBeansEncodingFlags.PROPERTY_TYPE)));
// TODO substitution???
}
}
// TODO all other optional elements if required
if (context.has(XmlBeansEncodingFlags.PROPERTY_TYPE)) {
MDMetadataPropertyType mdmpt = MDMetadataPropertyType.Factory.newInstance(getXmlOptions());
mdmpt.setMDMetadata(mdmt);
return mdmpt;
} else if (context.has(XmlBeansEncodingFlags.DOCUMENT)) {
MDMetadataDocument mdmd = MDMetadataDocument.Factory.newInstance(getXmlOptions());
mdmd.setMDMetadata(mdmt);
return mdmd;
}
return mdmt;
}
Aggregations