use of org.n52.shetland.w3c.xlink.Referenceable in project arctic-sea by 52North.
the class Iso19139GmdEncoder method encodeEXExtent.
private XmlObject encodeEXExtent(EXExtent exExtent, EncodingContext context) throws EncodingException {
EXExtentType exet = EXExtentType.Factory.newInstance();
if (exExtent.hasDescription()) {
exet.addNewDescription().setCharacterString(exExtent.getDescription());
}
if (exExtent.hasVerticalExtent()) {
for (Referenceable<EXVerticalExtent> verticalExtent : exExtent.getExVerticalExtent()) {
EXVerticalExtentPropertyType exvept = exet.addNewVerticalElement();
if (verticalExtent.isReference()) {
Reference reference = verticalExtent.getReference();
reference.getActuate().map(Actuate::toString).map(ActuateType.Enum::forString).ifPresent(exvept::setActuate);
reference.getArcrole().ifPresent(exvept::setArcrole);
reference.getHref().map(URI::toString).ifPresent(exvept::setHref);
reference.getRole().ifPresent(exvept::setRole);
reference.getShow().map(Show::toString).map(ShowType.Enum::forString).ifPresent(exvept::setShow);
reference.getTitle().ifPresent(exvept::setTitle);
reference.getType().map(Type::toString).map(TypeType.Enum::forString).ifPresent(exvept::setType);
} else {
if (verticalExtent.isInstance()) {
Nillable<EXVerticalExtent> nillable = verticalExtent.getInstance();
if (nillable.isPresent()) {
XmlObject xml = encodeEXVerticalExtent(nillable.get(), EncodingContext.empty());
if (xml != null && xml instanceof EXVerticalExtentType) {
exvept.setEXVerticalExtent((EXVerticalExtentType) xml);
} else {
exvept.setNil();
exvept.setNilReason(Nillable.missing().get());
}
} else {
exvept.setNil();
if (nillable.hasReason()) {
exvept.setNilReason(nillable.getNilReason().get());
} else {
exvept.setNilReason(Nillable.missing().get());
}
}
}
}
}
}
if (context.has(XmlBeansEncodingFlags.PROPERTY_TYPE)) {
EXExtentPropertyType exept = EXExtentPropertyType.Factory.newInstance(getXmlOptions());
exept.setEXExtent(exet);
return exept;
} else if (context.has(XmlBeansEncodingFlags.DOCUMENT)) {
EXExtentDocument exed = EXExtentDocument.Factory.newInstance(getXmlOptions());
exed.setEXExtent(exet);
return exed;
}
return exet;
}
use of org.n52.shetland.w3c.xlink.Referenceable in project arctic-sea by 52North.
the class Iso19139GmdEncoder method encodeOnlineResource.
private void encodeOnlineResource(CIOnlineResourcePropertyType ciorpt, Referenceable<CiOnlineResource> referenceable) {
if (referenceable.isReference()) {
Reference reference = referenceable.getReference();
reference.getActuate().map(Actuate::toString).map(ActuateType.Enum::forString).ifPresent(ciorpt::setActuate);
reference.getArcrole().ifPresent(ciorpt::setArcrole);
reference.getHref().map(URI::toString).ifPresent(ciorpt::setHref);
reference.getRole().ifPresent(ciorpt::setRole);
reference.getShow().map(Show::toString).map(ShowType.Enum::forString).ifPresent(ciorpt::setShow);
reference.getTitle().ifPresent(ciorpt::setTitle);
reference.getType().map(Type::toString).map(TypeType.Enum::forString).ifPresent(ciorpt::setType);
} else {
if (referenceable.isInstance()) {
Nillable<CiOnlineResource> nillable = referenceable.getInstance();
if (nillable.isPresent()) {
CIOnlineResourceType ciort = ciorpt.addNewCIOnlineResource();
encodeOnlineResource(ciort, referenceable.getInstance().get());
} else {
if (nillable.hasReason()) {
ciorpt.setNilReason(nillable.getNilReason().get());
}
}
}
}
}
use of org.n52.shetland.w3c.xlink.Referenceable in project arctic-sea by 52North.
the class Iso19139GmdEncoder method encodeEXVerticalExtent.
private XmlObject encodeEXVerticalExtent(EXVerticalExtent exVerticalExtent, EncodingContext context) throws EncodingException {
EXVerticalExtentType exvet = EXVerticalExtentType.Factory.newInstance();
if (exVerticalExtent.isSetId()) {
exvet.setId(exVerticalExtent.getId());
}
if (exVerticalExtent.isSetUuid()) {
exvet.setUuid(exVerticalExtent.getUuid());
}
// min value
Nillable<Double> minNillable = exVerticalExtent.getMinimumValue();
RealPropertyType rptMinValue = exvet.addNewMinimumValue();
if (minNillable.isPresent()) {
rptMinValue.setReal(minNillable.get());
} else {
rptMinValue.setNil();
if (minNillable.hasReason()) {
rptMinValue.setNilReason(minNillable.getNilReason().get());
} else {
rptMinValue.setNilReason(Nillable.missing().get());
}
}
// max value
Nillable<Double> maxNillable = exVerticalExtent.getMaximumValue();
RealPropertyType rptMinMaxValue = exvet.addNewMaximumValue();
if (maxNillable.isPresent()) {
rptMinMaxValue.setReal(maxNillable.get());
} else {
rptMinMaxValue.setNil();
if (maxNillable.hasReason()) {
rptMinMaxValue.setNilReason(maxNillable.getNilReason().get());
} else {
rptMinMaxValue.setNilReason(Nillable.missing().get());
}
}
// verticalCRS
SCCRSPropertyType sccrspt = exvet.addNewVerticalCRS();
Referenceable<ScCRS> verticalCRS = exVerticalExtent.getVerticalCRS();
if (verticalCRS.isReference()) {
Reference reference = verticalCRS.getReference();
reference.getActuate().map(Actuate::toString).map(ActuateType.Enum::forString).ifPresent(sccrspt::setActuate);
reference.getArcrole().ifPresent(sccrspt::setArcrole);
reference.getHref().map(URI::toString).ifPresent(sccrspt::setHref);
reference.getRole().ifPresent(sccrspt::setRole);
reference.getShow().map(Show::toString).map(ShowType.Enum::forString).ifPresent(sccrspt::setShow);
reference.getTitle().ifPresent(sccrspt::setTitle);
reference.getType().map(Type::toString).map(TypeType.Enum::forString).ifPresent(sccrspt::setType);
} else {
if (verticalCRS.isInstance()) {
Nillable<ScCRS> nillable = verticalCRS.getInstance();
if (nillable.isPresent()) {
XmlObject xml = encodeObjectToXml(GmlConstants.NS_GML_32, nillable.get().getAbstractCrs());
if (xml != null && xml instanceof AbstractCRSType) {
final XmlObject substituteElement = XmlHelper.substituteElement(sccrspt.addNewAbstractCRS(), xml);
substituteElement.set(xml);
} else {
sccrspt.setNil();
sccrspt.setNilReason(Nillable.missing().get());
}
} else {
sccrspt.setNil();
if (nillable.hasReason()) {
sccrspt.setNilReason(nillable.getNilReason().get());
} else {
sccrspt.setNilReason(Nillable.missing().get());
}
}
}
}
if (context.has(XmlBeansEncodingFlags.PROPERTY_TYPE)) {
EXVerticalExtentPropertyType exvept = EXVerticalExtentPropertyType.Factory.newInstance(getXmlOptions());
exvept.setEXVerticalExtent(exvet);
return exvept;
} else if (context.has(XmlBeansEncodingFlags.DOCUMENT)) {
EXVerticalExtentDocument exved = EXVerticalExtentDocument.Factory.newInstance(getXmlOptions());
exved.setEXVerticalExtent(exvet);
return exved;
}
return exvet;
}
use of org.n52.shetland.w3c.xlink.Referenceable in project arctic-sea by 52North.
the class GmlEncoderv321 method addAbstractCRSValues.
private void addAbstractCRSValues(AbstractCRSType acrst, AbstractCRS abstractCRS) throws EncodingException {
addDefinitonValues(acrst, abstractCRS);
if (abstractCRS.hasDomainOfValidity()) {
for (Referenceable<DomainOfValidity> domainOfValidity : abstractCRS.getDomainOfValidity()) {
net.opengis.gml.x32.DomainOfValidityDocument.DomainOfValidity dov = acrst.addNewDomainOfValidity();
if (domainOfValidity.isReference()) {
Reference reference = domainOfValidity.getReference();
reference.getActuate().map(Actuate::toString).map(ActuateType.Enum::forString).ifPresent(dov::setActuate);
reference.getArcrole().ifPresent(dov::setArcrole);
reference.getHref().map(URI::toString).ifPresent(dov::setHref);
reference.getRole().ifPresent(dov::setRole);
reference.getShow().map(Show::toString).map(ShowType.Enum::forString).ifPresent(dov::setShow);
reference.getTitle().ifPresent(dov::setTitle);
reference.getType().map(Type::toString).map(TypeType.Enum::forString).ifPresent(dov::setType);
} else {
if (domainOfValidity.isInstance()) {
Nillable<DomainOfValidity> nillable = domainOfValidity.getInstance();
if (nillable.isPresent()) {
net.opengis.gml.x32.DomainOfValidityDocument.DomainOfValidity xml = createDomainOfValidity(nillable.get(), EncodingContext.empty());
if (xml != null) {
dov.set(xml);
} else {
dov.setNil();
dov.setNilReason(Nillable.missing().get());
}
} else {
dov.setNil();
if (nillable.hasReason()) {
dov.setNilReason(nillable.getNilReason().get());
} else {
dov.setNilReason(Nillable.missing().get());
}
}
}
}
}
}
if (abstractCRS.hasScope()) {
abstractCRS.getScope().forEach(scope -> acrst.addNewScope().setStringValue(scope));
}
}
use of org.n52.shetland.w3c.xlink.Referenceable in project arctic-sea by 52North.
the class AbstractWmlEncoderv20 method addVerticalDatum.
private void addVerticalDatum(MonitoringPointType mpt, List<Referenceable<VerticalDatum>> verticalDatums) throws EncodingException {
for (Referenceable<VerticalDatum> verticalDatum : verticalDatums) {
VerticalDatumPropertyType vdpt = mpt.addNewVerticalDatum();
if (verticalDatum.isReference()) {
Reference reference = verticalDatum.getReference();
reference.getActuate().map(Actuate::toString).map(ActuateType.Enum::forString).ifPresent(vdpt::setActuate);
reference.getArcrole().ifPresent(vdpt::setArcrole);
reference.getHref().map(URI::toString).ifPresent(vdpt::setHref);
reference.getRole().ifPresent(vdpt::setRole);
reference.getShow().map(Show::toString).map(ShowType.Enum::forString).ifPresent(vdpt::setShow);
reference.getTitle().ifPresent(vdpt::setTitle);
reference.getType().map(Type::toString).map(TypeType.Enum::forString).ifPresent(vdpt::setType);
} else {
if (verticalDatum.isInstance()) {
Nillable<VerticalDatum> nillable = verticalDatum.getInstance();
if (nillable.isPresent()) {
XmlObject xml = encodeGML(nillable.get());
if (xml != null && xml instanceof VerticalDatumType) {
vdpt.setVerticalDatum((VerticalDatumType) xml);
} else {
vdpt.setNil();
vdpt.setNilReason(Nillable.missing().get());
}
} else {
vdpt.setNil();
if (nillable.hasReason()) {
vdpt.setNilReason(nillable.getNilReason().get());
} else {
vdpt.setNilReason(Nillable.missing().get());
}
}
}
}
}
}
Aggregations