use of org.geotoolkit.gml.xml.v321.TimePositionType in project arctic-sea by 52North.
the class GmlEncoderv321 method createTimePositionType.
private TimePositionType createTimePositionType(TimePosition timePosition) throws DateTimeFormatException {
TimePositionType xbTimePosition = TimePositionType.Factory.newInstance();
if (!timePosition.isSetTime()) {
String indeterminateValue = Optional.ofNullable(timePosition.getIndeterminateValue()).orElse(IndeterminateValue.UNKNOWN).getValue();
if (TimeIndeterminateValueType.Enum.forString(indeterminateValue) != null) {
xbTimePosition.setIndeterminatePosition(TimeIndeterminateValueType.Enum.forString(indeterminateValue));
} else {
xbTimePosition.setStringValue(indeterminateValue);
}
} else {
String endString = DateTimeHelper.formatDateTime2String(timePosition);
// concat minutes for timeZone offset, because gml requires
// xs:dateTime, which needs minutes in
// timezone offset
// TODO enable really
xbTimePosition.setStringValue(endString);
}
return xbTimePosition;
}
use of org.geotoolkit.gml.xml.v321.TimePositionType in project geotoolkit by Geomatys.
the class GetCoverageType method getTime.
/**
* {@inheritDoc}
*/
@Override
public String getTime() {
if (domainSubset == null || domainSubset.getTemporalSubSet() == null || domainSubset.getTemporalSubSet().getTimePositionOrTimePeriod() == null) {
return null;
}
final List<Object> times = domainSubset.getTemporalSubSet().getTimePositionOrTimePeriod();
final Object timeObj = times.get(0);
if (timeObj instanceof TimePositionType) {
return ((TimePositionType) timeObj).getValue();
} else {
return null;
}
}
use of org.geotoolkit.gml.xml.v321.TimePositionType in project geotoolkit by Geomatys.
the class GetCoverageType method getTime.
/**
* {@inheritDoc}
*/
@Override
public String getTime() {
if (domainSubset == null || domainSubset.getTemporalSubset() == null) {
return null;
}
final List<Object> times = domainSubset.getTemporalSubset().getTimePositionOrTimePeriod();
final Object obj = times.get(0);
if (obj instanceof TimePositionType) {
return ((TimePositionType) obj).getValue();
} else {
return null;
}
}
use of org.geotoolkit.gml.xml.v321.TimePositionType in project geotoolkit by Geomatys.
the class GmlXMLBindingTest method marshallingTest.
/**
* Test simple Record Marshalling.
*
* @throws JAXBException
*/
@Test
public void marshallingTest() throws Exception {
DirectPositionType lower = new DirectPositionType(-30.711, 134.196);
DirectPositionType upper = new DirectPositionType(-30.702, 134.205);
EnvelopeType env = new EnvelopeType("bound-1", lower, upper, "urn:ogc:def:crs:EPSG:6.8:4283");
StringWriter sw = new StringWriter();
marshaller.marshal(FACTORY.createEnvelope(env), sw);
String result = sw.toString();
// we remove the first line
result = result.substring(result.indexOf("?>") + 2).trim();
String expResult = "<gml:Envelope xmlns:gml=\"" + GML + '"' + " srsName=\"urn:ogc:def:crs:EPSG:6.8:4283\">" + '\n' + " <gml:lowerCorner>-30.711 134.196</gml:lowerCorner>" + '\n' + " <gml:upperCorner>-30.702 134.205</gml:upperCorner>" + '\n' + "</gml:Envelope>" + '\n';
assertXmlEquals(expResult, result, "xmlns:*");
Duration d1 = javax.xml.datatype.DatatypeFactory.newInstance().newDuration("P2D");
TimePeriodType tp = new TimePeriodType(d1);
marshaller.marshal(FACTORY.createTimePeriod(tp), sw);
TimePositionType tpos = new TimePositionType("2002-08-15");
tp = new TimePeriodType(tpos);
marshaller.marshal(FACTORY.createTimePeriod(tp), sw);
// System.out.println(sw.toString());
LineStringSegmentType ls = new LineStringSegmentType();
DirectPositionListType posList = new DirectPositionListType();
posList.setValue(Arrays.asList(1.0, 1.1, 1.2));
ls.setPosList(posList);
sw = new StringWriter();
marshaller.marshal(FACTORY.createLineStringSegment(ls), sw);
result = sw.toString();
// we remove the first line
result = result.substring(result.indexOf("?>") + 2).trim();
expResult = "<gml:LineStringSegment xmlns:gml=\"" + GML + "\">\n" + " <gml:posList>1.0 1.1 1.2</gml:posList>" + '\n' + "</gml:LineStringSegment>" + '\n';
assertXmlEquals(expResult, result, "xmlns:*");
ls = new LineStringSegmentType();
DirectPositionType pos1 = new DirectPositionType(Arrays.asList(1.1, 1.2));
DirectPositionType pos2 = new DirectPositionType(Arrays.asList(2.3, 48.1));
ls.getPos().add(pos1);
ls.getPos().add(pos2);
sw = new StringWriter();
marshaller.marshal(FACTORY.createLineStringSegment(ls), sw);
result = sw.toString();
// we remove the first line
result = result.substring(result.indexOf("?>") + 2).trim();
expResult = "<gml:LineStringSegment xmlns:gml=\"" + GML + "\">\n" + " <gml:pos>1.1 1.2</gml:pos>" + '\n' + " <gml:pos>2.3 48.1</gml:pos>" + '\n' + "</gml:LineStringSegment>" + '\n';
assertXmlEquals(expResult, result, "xmlns:*");
}
use of org.geotoolkit.gml.xml.v321.TimePositionType in project geotoolkit by Geomatys.
the class TimePeriodTypeTest method getTime2Test.
@Test
public void getTime2Test() throws Exception {
TimePositionType tn = null;
TimePositionType tb = new TimePositionType("2008-11-01T02:00:00");
TimePositionType te = new TimePositionType("2008-11-01T02:01:00");
TimePeriodType tp = new TimePeriodType(new TimeInstantType(tb), new TimeInstantType(te));
assertEquals(60000, tp.getTime());
tb = new TimePositionType("2008-11-01T01:00:00");
te = new TimePositionType("2008-11-01T02:00:00");
tp = new TimePeriodType(new TimeInstantType(tb), new TimeInstantType(te));
assertEquals(3600000, tp.getTime());
tp = new TimePeriodType(new TimeInstantType(tb), new TimeInstantType(tn));
assertEquals(-1, tp.getTime());
tb = null;
tp = new TimePeriodType(new TimeInstantType(tb), new TimeInstantType(te));
assertEquals(-1, tp.getTime());
tb = null;
te = null;
tp = new TimePeriodType(new TimeInstantType(tb), new TimeInstantType(te));
assertEquals(-1, tp.getTime());
}
Aggregations