public DateRange expand(Date d) { Calendar c = new GregorianCalendar(UTC_TZ); c.setTime(d); c.add(this.precision, 1); c.add(Calendar.MILLISECOND, -1); return new DateRange(d, c.getTime()); } }
public Range getSearchRangeOnSingleValue(Object value) { if (Date.class.isAssignableFrom(dataType)) { Date center = (Date) value; Calendar cal = Calendar.getInstance(); cal.setTime(center); cal.setTimeInMillis(cal.getTimeInMillis() - before.longValue()); Date min = cal.getTime(); cal.setTime(center); cal.setTimeInMillis(cal.getTimeInMillis() + after.longValue()); Date max = cal.getTime(); return new DateRange(min, max); } // TODO: add support for Number, e.g., elevation throw new IllegalArgumentException("Unsupported value type " + dataType); }
/** * Parses either a time expression in ISO format, or a time period in start/end format * * @param df * @param timeOrRange * @throws ParseException */ private Object parseTimeOrRange(SimpleDateFormat df, String timeOrRange) throws ParseException { if (timeOrRange.contains("/")) { String[] splitted = timeOrRange.split("/"); final String strStart = splitted[0]; final String strEnd = splitted[1]; if (strStart != null && strStart.equals(strEnd)) { return df.parse(strStart); } else { Date start = df.parse(strStart); Date end = df.parse(strEnd); return new DateRange(start, end); } } else { return df.parse(timeOrRange); } }
addPeriod(result, new DateRange(range[0], range[1])); } else { throw new ParseException("Invalid time period: " + Arrays.toString(period), 0);
/** Add a metadata element to the FileGroup metadata map */ private void addMetadaElement( String name, Comparable min, Comparable max, Map<String, Object> metadataMap) { if (Utils.TIME_DOMAIN.equalsIgnoreCase(name) || min instanceof Date) { metadataMap.put(name.toUpperCase(), new DateRange((Date) min, (Date) max)); } else if (Utils.ELEVATION_DOMAIN.equalsIgnoreCase(name) || min instanceof Number) { metadataMap.put( name.toUpperCase(), NumberRange.create( ((Number) min).doubleValue(), true, ((Number) max).doubleValue(), true)); } else { metadataMap.put(name, new Range(String.class, (String) min, (String) max)); } }
/** Add a metadata element to the FileGroup metadata map */ protected void addMetadaElement( String name, Comparable min, Comparable max, Map<String, Object> metadataMap) { if (Utils.TIME_DOMAIN.equalsIgnoreCase(name) || min instanceof Date) { metadataMap.put(name.toUpperCase(), new DateRange((Date) min, (Date) max)); } else if (Utils.ELEVATION_DOMAIN.equalsIgnoreCase(name) || min instanceof Number) { metadataMap.put( name.toUpperCase(), NumberRange.create( ((Number) min).doubleValue(), true, ((Number) max).doubleValue(), true)); } else { metadataMap.put(name, new Range(String.class, (String) min, (String) max)); } }
public void visit(Feature feature) { final Object firstValue = expr1.evaluate(feature); final Object secondValue = expr2.evaluate(feature); if (firstValue != null && secondValue != null) { final Date beginDate = (Date) firstValue; final Date endDate = (Date) secondValue; set.add(new DateRange(beginDate, endDate)); } }
public SortedSet<DateRange> getTemporalExtent() { // Getting global Extent Date startTime; try { startTime = adaptee.getMinimum(); Date endTime = adaptee.getMaximum(); final DateRange global = new DateRange(startTime, endTime); final SortedSet<DateRange> globalTemporalExtent = new DateRangeTreeSet(); globalTemporalExtent.add(global); return globalTemporalExtent; } catch (IOException e) { throw new RuntimeException(e); } }
@Override public SortedSet<? extends DateRange> getTemporalElements( boolean overall, ProgressListener listener) throws IOException { if (overall) { // Getting overall Extent final SortedSet<DateRange> extent = new TreeSet<DateRange>(new DateRangeComparator()); for (Date dd : adaptee.read()) { extent.add(new DateRange(dd, dd)); } return extent; } else { return getTemporalExtent(); } }
/** * Merge 2 ranges together. In order to speed up the computations, this method does the * assumption that the 2 date ranges are already sorted (first < second) and they intersect * together. * * @param firstDateRange * @param secondDateRange * @return */ private static DateRange merge(DateRange firstDateRange, DateRange secondDateRange) { Utilities.ensureNonNull("firstDateRange", firstDateRange); Utilities.ensureNonNull("secondDateRange", secondDateRange); final long beginFirst = firstDateRange.getMinValue().getTime(); final long endFirst = firstDateRange.getMaxValue().getTime(); final long beginSecond = secondDateRange.getMinValue().getTime(); final long endSecond = secondDateRange.getMaxValue().getTime(); final long max = Math.max(endFirst, endSecond); final long min = Math.min(beginFirst, beginSecond); final Date beginDate = new Date(min); final Date endDate = new Date(max); return new DateRange(beginDate, endDate); } }
new DateRange((Date) adaptee.getMinimum(), (Date) adaptee.getMaximum())); } else if (Number.class.isAssignableFrom(type)) { this.type = DomainType.NUMBER;
for (Object val : dates) { if (val instanceof Date) { requestedTemporalSubset.add(new DateRange((Date) val, (Date) val)); } else if (val instanceof DateRange) { requestedTemporalSubset.add((DateRange) val);
DateRange dateRange; if(...){ dateRange = (DateRange)it.next(); } else{ dateRange = new DateRange(); ... session.save(dateRange); }
DateRangeItem dateRangeItem=new DateRangeItem(); dateRangeItem.setFromDate(fromDate); dateRangeItem.setToDate(toDate); dateRangeItem.setValue(new DateRange());
public SortedSet<DateRange> getTemporalExtent() { // Getting global Extent Date startTime; try { startTime = adaptee.getMinimum(); Date endTime = adaptee.getMaximum(); final DateRange global = new DateRange(startTime, endTime); final SortedSet<DateRange> globalTemporalExtent = new DateRangeTreeSet(); globalTemporalExtent.add(global); return globalTemporalExtent; } catch (IOException e) { throw new RuntimeException(e); } }
DateRange dateRange = new DateRange(); dateRange.setStartDate(startDate); dateRange.setEndDate(endDate); dateRangessArray[0]=dateRange;
public SortedSet<DateRange> getTemporalExtent() { // Getting global Extent Date startTime; try { startTime = adaptee.getMinimum(); Date endTime = adaptee.getMaximum(); final DateRange global = new DateRange(startTime, endTime); final SortedSet<DateRange> globalTemporalExtent = new DateRangeTreeSet(); globalTemporalExtent.add(global); return globalTemporalExtent; } catch (IOException e) { throw new RuntimeException(e); } }
@Override public SortedSet<? extends DateRange> getTemporalElements( boolean overall, ProgressListener listener) throws IOException { if (overall) { // Getting overall Extent final SortedSet<DateRange> extent = new TreeSet<DateRange>(new DateRangeComparator()); for (Date dd : adaptee.read()) { extent.add(new DateRange(dd, dd)); } return extent; } else { return getTemporalExtent(); } }
@Override public SortedSet<? extends DateRange> getTemporalElements(boolean overall, ProgressListener listener) throws IOException { if (overall) { // Getting overall Extent final SortedSet<DateRange> extent = new TreeSet<DateRange>(new DateRangeComparator()); for(Date dd:adaptee.read()){ extent.add(new DateRange(dd,dd)); } return extent; } else { return getTemporalExtent(); } }
/** * Set default time value from the provided feature * * @param timeDimension * @param f */ private DateRange setDefaultTemporalSubset(DimensionDescriptor timeDimension, SimpleFeature f) { final String start = timeDimension.getStartAttribute(); final String end = timeDimension.getEndAttribute(); Date startTime = (Date) f.getAttribute(start); Date endTime = startTime; if (end != null) { endTime = (Date) f.getAttribute(end); } return new DateRange(startTime, endTime); }