Hi Martin, I found what I guess is a bug in the temporal module but I'm not sure if it actually is or it just seems counter intuitive to me but its correct. The thing is with the compareTo implementation in DefaultTemporalPrimitive, which seems to return inverted values for AFTER and BEFORE. I got to this while working with a TreeSet<TemporalGeometricPrimitive> which returned an iterator in the reverse order I expected.
As to reproduce: Date time1 = new Date(1000L); Date time2 = new Date(0L); Date time3 = new Date(2000L); SortedSet<TemporalGeometricPrimitive> temporalSubset = new TreeMap<TemporalGeometricPrimitive>(); temporalSubset.add(new DefaultInstant(new DefaultPosition(time1))); temporalSubset.add(new DefaultInstant(new DefaultPosition(time2))); temporalSubset.add(new DefaultInstant(new DefaultPosition(time3))); Iterator<TemporalGeometricPrimitive> iterator = temporalSubset.iterator(); TemporalGeometricPrimitive t1 = iterator.next(); TemporalGeometricPrimitive t2 = iterator.next(); TemporalGeometricPrimitive t3 = iterator.next(); assertEquals(0L, ((Instant)t1).getPosition().getDate().getTime()); assertEquals(1000L, ((Instant)t2).getPosition().getDate().getTime()); assertEquals(2000L, ((Instant)t3).getPosition().getDate().getTime()); The above last three lines fail because they came as 2000, 1000, 0, which makes sense if my interpretation of DefaultTemporalPrimitive.compareTo is correct: public int compareTo(TemporalPrimitive that) { if (that==null) throw new IllegalArgumentException("Provided temporal object is null"); final RelativePosition pos= this.relativePosition(that); if(pos==null) throw new ClassCastException("The provided object cannot be compared to this one"); if(pos==RelativePosition.AFTER) return -1; if(pos==RelativePosition.BEFORE) return +1; if(pos==RelativePosition.EQUALS) return 0; It seems that the return of 1 and -1 is inverted? Like if this.relativePosition(that) == AFTER it should return 1 instead of -1? The other posibility is that the natural order of temporal primitives is backward, so just a confirmation would satisfy my curiosity :) cheers, Gabriel ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Geotools-devel mailing list Geotools-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-devel