<div dir="ltr">Hi,<div><br></div><div>I'm trying to mashall a TimePeriod whose endPosition is set to NOW.</div><div style>I'm using geotk-metadata-3.20-sources.jar</div><div><br></div><div style>My code is the following:</div>
<div style><br></div><div style><div>@Test</div><div><span class="" style="white-space:pre">        </span>public void testIndeterminateTimePeriod() throws Exception</div><div><span class="" style="white-space:pre"> </span>{</div>
<div><span class="" style="white-space:pre">            </span>DefaultTemporalExtent defExtent = new DefaultTemporalExtent();</div><div><span class="" style="white-space:pre">             </span>TimePositionType beginPosition = new TimePositionType(Calendar.getInstance().getTime());</div>
<div><span class="" style="white-space:pre">            </span>TimePeriodType period = new TimePeriodType(beginPosition);</div><div><span class="" style="white-space:pre">         </span>period.setEndPosition(TimeIndeterminateValueType.NOW);</div>
<div><span class="" style="white-space:pre">            </span>ByteArrayOutputStream outputStream = new ByteArrayOutputStream();</div><div><span class="" style="white-space:pre">          </span>defExtent.setExtent(period);</div><div><span class="" style="white-space:pre">               </span>XML.marshal(defExtent, outputStream);</div>
<div><span class="" style="white-space:pre">            </span>String result = outputStream.toString();</div><div><span class="" style="white-space:pre">           </span>System.out.println(result);</div><div><span class="" style="white-space:pre">        </span>}</div>
<div><br></div><div style>But in the result, "now" is replaced by "after"</div></div><div style><br></div><div><div><div> <gmd:extent></div><div>        <gml:TimePeriod gml:id="IZVD69"></div>
<div>            <gml:beginPosition>2013-01-09T15:06:20+01:00</gml:beginPosition></div><div>            <gml:endPosition indeterminatePosition="after"/></div><div>        </gml:TimePeriod></div>
<div>    </gmd:extent></div></div></div><div><br></div><div><br></div><div style>I understand that this replacement is operated in the TimePeriod constructor:</div><div style><br></div><div style><div>public TimePeriod(final Period period) {</div>
<div>        super(period);</div><div>        if (period != null) {</div><div>            if (MarshalContext.versionGML(MarshalContext.GML_3_0)) {</div><div>                begin = new TimePeriodBound.GML3(period.getBeginning(), "before");</div>
<div>                end   = new TimePeriodBound.GML3(period.getEnding(), "after");</div><div>            } else {</div><div>                begin = new TimePeriodBound.GML2(period.getBeginning());</div><div>                end   = new TimePeriodBound.GML2(period.getEnding());</div>
<div>            }</div><div>        }</div><div>    }</div><div><br></div><div style>But I don't understand the reason of the replacement : is it a bug or should any indeterminated period be replaced by "after", or (more likely), is it my code which is simply wrong ?</div>
<div style><br></div><div style>Cheers</div><div style><br></div><div style>François</div></div></div>