use of org.n52.shetland.iso.gmd.MDMetadata in project arctic-sea by 52North.
the class Iso19139GmdEncoderTest method checkMDMetadataEncoding.
// @Test
// public void checkMDMetadataReferenceEncoding() throws EncodingException {
// MDMetadata mdMmetadata = new MDMetadata(new SimpleAttrs().setHref("href").setTitle("title"));
// XmlObject xmlObject = encoder.encode(mdMmetadata);
// xmlObject.validate();
// errors.checkThat(xmlObject, instanceOf(MDMetadataPropertyType.class));
// }
@Test
public void checkMDMetadataEncoding() throws EncodingException {
MDDataIdentification identificationInfo = new MDDataIdentification(new GmdCitation("title", new GmdCitationDate(GmdDateType.publication(), "2018-10-11")), "abstrakt", "ger");
MDMetadata mdMmetadata = new MDMetadata(new CiResponsibleParty(new org.n52.shetland.iso.gco.Role(CodeList.CiRoleCodes.CI_RoleCode_author.name())), DateTime.now(), identificationInfo);
XmlObject xmlObject = encoder.encode(mdMmetadata, EncodingContext.of(XmlBeansEncodingFlags.PROPERTY_TYPE));
xmlObject.validate();
errors.checkThat(xmlObject, instanceOf(MDMetadataPropertyType.class));
}
use of org.n52.shetland.iso.gmd.MDMetadata 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