use of org.n52.shetland.iso.gmd.CiResponsibleParty 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.CiResponsibleParty in project arctic-sea by 52North.
the class AbstractWmlEncoderv20 method addRelatedParty.
private void addRelatedParty(MonitoringPointType mpt, List<Referenceable<CiResponsibleParty>> relatedParties) throws EncodingException {
for (Referenceable<CiResponsibleParty> relatedParty : relatedParties) {
CIResponsiblePartyPropertyType citppt = mpt.addNewRelatedParty();
if (relatedParty.isReference()) {
Reference reference = relatedParty.getReference();
reference.getActuate().map(Actuate::toString).map(ActuateType.Enum::forString).ifPresent(citppt::setActuate);
reference.getArcrole().ifPresent(citppt::setArcrole);
reference.getHref().map(URI::toString).ifPresent(citppt::setHref);
reference.getRole().ifPresent(citppt::setRole);
reference.getShow().map(Show::toString).map(ShowType.Enum::forString).ifPresent(citppt::setShow);
reference.getTitle().ifPresent(citppt::setTitle);
reference.getType().map(Type::toString).map(TypeType.Enum::forString).ifPresent(citppt::setType);
} else {
if (relatedParty.isInstance()) {
Nillable<CiResponsibleParty> nillable = relatedParty.getInstance();
if (nillable.isPresent()) {
XmlObject xml = encodeObjectToXml(nillable.get().getDefaultElementEncoding(), nillable.get());
if (xml != null && xml instanceof CIResponsiblePartyType) {
citppt.setCIResponsibleParty((CIResponsiblePartyType) xml);
} else {
citppt.setNil();
citppt.setNilReason(Nillable.missing().get());
}
} else {
citppt.setNil();
if (nillable.hasReason()) {
citppt.setNilReason(nillable.getNilReason().get());
} else {
citppt.setNilReason(Nillable.missing().get());
}
}
}
}
}
}
use of org.n52.shetland.iso.gmd.CiResponsibleParty 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