List of usage examples for org.joda.time Interval getStartMillis
public long getStartMillis()
From source file:org.gephi.desktop.timeline.TickGraph.java
License:Open Source License
private void drawDate(Graphics2D g) { int width = parameters.getWidth(); int height = parameters.getHeight(); //Font/*w w w . ja va2 s . com*/ int fontSize = Math.min(parameters.getFontSize(), (int) (height / 4.)); fontSize = fontSize > parameters.getFontSize() / 4 && fontSize <= parameters.getFontSize() / 2 ? parameters.getFontSize() / 2 : fontSize; FontMetrics smallMetrics = null; Font smallFont = parameters.getFont(); Font bigFont; FontMetrics bigMetrics; if (smallFont != null && fontSize > parameters.getFontSize() / 4) { smallFont = smallFont.deriveFont(Font.PLAIN, fontSize); smallMetrics = g.getFontMetrics(smallFont); bigFont = smallFont.deriveFont(Font.PLAIN, (int) (fontSize * 2.5)); bigMetrics = g.getFontMetrics(bigFont); } else { smallFont = null; bigFont = null; } DateTick dateTick = DateTick.create(min, max, width); int TOP_TICK = 0; int LOWER_TICK = 1; //Lower tick if (dateTick.getTypeCount() > 1) { g.setFont(smallFont); g.setColor(parameters.getDateColor(LOWER_TICK)); Interval[] intervals = dateTick.getIntervals(LOWER_TICK); int labelWidth = smallMetrics != null ? smallMetrics.stringWidth("0000") : 0; for (Interval interval : intervals) { long ms = interval.getStartMillis(); int x = dateTick.getTickPixelPosition(ms, width); if (x >= 0) { g.setColor(parameters.getDateColor(LOWER_TICK)); //Height int h = (int) (Math.min(40, (int) (height / 15.0))); //Draw line g.drawLine(x, 0, x, h); //Label if (smallFont != null && width / intervals.length > labelWidth) { String label = dateTick.getTickValue(LOWER_TICK, interval.getStart()); int xLabel = x + 4; g.setColor(parameters.getDateColor(1)); int y = (int) (fontSize * 1.2); g.drawString(label, xLabel, y); } } } } //Top tick if (dateTick.getTypeCount() > 0) { g.setFont(bigFont); g.setColor(parameters.getDateColor(TOP_TICK)); Interval[] intervals = dateTick.getIntervals(TOP_TICK); for (Interval interval : intervals) { long ms = interval.getStartMillis(); int x = dateTick.getTickPixelPosition(ms, width); if (x >= 0) { g.setColor(parameters.getDateColor(TOP_TICK)); //Height int h = height; //Draw Line g.drawLine(x, 0, x, h); //Label if (bigFont != null) { String label = dateTick.getTickValue(TOP_TICK, interval.getStart()); int xLabel = x + 4; g.setColor(parameters.getDateColor(TOP_TICK)); int y = (int) (fontSize * 4); g.drawString(label, xLabel, y); } } else if (x > ((dateTick.getTickPixelPosition(interval.getEndMillis(), width) - x) / -2)) { if (bigFont != null) { String label = dateTick.getTickValue(TOP_TICK, interval.getStart()); g.setColor(parameters.getDateColor(TOP_TICK)); int y = (int) (fontSize * 4); g.drawString(label, 4, y); } } } } }
From source file:org.hawkular.metrics.api.jaxrs.influx.InfluxSeriesHandler.java
License:Apache License
private void select(AsyncResponse asyncResponse, String tenantId, SelectQueryContext selectQueryContext) { SelectQueryDefinitionsParser definitionsParser = new SelectQueryDefinitionsParser(); parseTreeWalker.walk(definitionsParser, selectQueryContext); SelectQueryDefinitions queryDefinitions = definitionsParser.getSelectQueryDefinitions(); try {//ww w.ja va2s .c o m queryValidator.validateSelectQuery(queryDefinitions); } catch (IllegalQueryException e) { StringValue errMsg = new StringValue("Illegal query: " + e.getMessage()); asyncResponse.resume(Response.status(Status.BAD_REQUEST).entity(errMsg).build()); return; } String metric = queryDefinitions.getFromClause().getName(); // metric to query from backend BooleanExpression whereClause = queryDefinitions.getWhereClause(); Interval timeInterval; if (whereClause == null) { timeInterval = new Interval(new Instant(0), Instant.now()); } else { timeInterval = toIntervalTranslator.toInterval(whereClause); } if (timeInterval == null) { StringValue errMsg = new StringValue("Invalid time interval"); asyncResponse.resume(Response.status(Status.BAD_REQUEST).entity(errMsg).build()); return; } String columnName = getColumnName(queryDefinitions); ListenableFuture<Boolean> idExistsFuture = metricsService.idExists(metric); ListenableFuture<List<NumericData>> loadMetricsFuture = Futures.transform(idExistsFuture, (AsyncFunction<Boolean, List<NumericData>>) idExists -> { if (idExists != Boolean.TRUE) { return Futures.immediateFuture(null); } return metricsService.findData(new NumericMetric(tenantId, new MetricId(metric)), timeInterval.getStartMillis(), timeInterval.getEndMillis()); }); ListenableFuture<List<InfluxObject>> influxObjectTranslatorFuture = Futures.transform(loadMetricsFuture, (List<NumericData> metrics) -> { if (metrics == null) { return null; } if (shouldApplyMapping(queryDefinitions)) { GroupByClause groupByClause = queryDefinitions.getGroupByClause(); InfluxTimeUnit bucketSizeUnit = groupByClause.getBucketSizeUnit(); long bucketSizeSec = bucketSizeUnit.convertTo(SECONDS, groupByClause.getBucketSize()); AggregatedColumnDefinition aggregatedColumnDefinition = (AggregatedColumnDefinition) queryDefinitions .getColumnDefinitions().get(0); metrics = applyMapping(aggregatedColumnDefinition.getAggregationFunction(), aggregatedColumnDefinition.getAggregationFunctionArguments(), metrics, (int) bucketSizeSec, timeInterval.getStartMillis(), timeInterval.getEndMillis()); } if (!queryDefinitions.isOrderDesc()) { metrics = Lists.reverse(metrics); } if (queryDefinitions.getLimitClause() != null) { metrics = metrics.subList(0, queryDefinitions.getLimitClause().getLimit()); } List<InfluxObject> objects = new ArrayList<>(1); List<String> columns = new ArrayList<>(2); columns.add("time"); columns.add(columnName); InfluxObject.Builder builder = new InfluxObject.Builder(metric, columns) .withForeseenPoints(metrics.size()); for (NumericData m : metrics) { List<Object> data = new ArrayList<>(); data.add(m.getTimestamp()); data.add(m.getValue()); builder.addPoint(data); } objects.add(builder.createInfluxObject()); return objects; }); Futures.addCallback(influxObjectTranslatorFuture, new FutureCallback<List<InfluxObject>>() { @Override public void onSuccess(List<InfluxObject> objects) { if (objects == null) { StringValue val = new StringValue("Metric with id [" + metric + "] not found. "); asyncResponse.resume(Response.status(404).entity(val).build()); } else { ResponseBuilder builder = Response.ok(objects); asyncResponse.resume(builder.build()); } } @Override public void onFailure(Throwable t) { asyncResponse.resume(t); } }); }
From source file:org.jasig.portlet.calendar.adapter.CalDavCalendarAdapter.java
License:Apache License
protected final Set<VEvent> convertCalendarToEvents(net.fortuna.ical4j.model.Calendar calendar, Interval interval) throws CalendarException { Period period = new Period(new net.fortuna.ical4j.model.DateTime(interval.getStartMillis()), new net.fortuna.ical4j.model.DateTime(interval.getEndMillis())); Set<VEvent> events = new HashSet<VEvent>(); // if the calendar is null, return empty set if (calendar == null) { log.info("calendar empty, returning empty set"); return Collections.emptySet(); }// ww w. j ava2 s . c o m // retrieve the list of events for this calendar within the // specified time period for (Iterator<Component> i = calendar.getComponents().iterator(); i.hasNext();) { Component component = i.next(); if (component.getName().equals("VEVENT")) { VEvent event = (VEvent) component; if (log.isTraceEnabled()) { log.trace("processing event " + event.getSummary().getValue()); } // calculate the recurrence set for this event // for the specified time period PeriodList periods = event.calculateRecurrenceSet(period); // add each recurrence instance to the event list for (Iterator<Period> iter = periods.iterator(); iter.hasNext();) { Period eventper = iter.next(); PropertyList props = event.getProperties(); // create a new property list, setting the date // information to this event period PropertyList newprops = new PropertyList(); newprops.add(new DtStart(eventper.getStart())); newprops.add(new DtEnd(eventper.getEnd())); for (Iterator<Property> iter2 = props.iterator(); iter2.hasNext();) { Property prop = iter2.next(); // only add non-date-related properties if (!(prop instanceof DtStart) && !(prop instanceof DtEnd) && !(prop instanceof Duration) && !(prop instanceof RRule)) newprops.add(prop); } // create the new event from our property list VEvent newevent = new VEvent(newprops); events.add(newevent); if (log.isTraceEnabled()) { log.trace("added event " + newevent); } } } } return events; }
From source file:org.jasig.portlet.calendar.processor.ICalendarContentProcessorImpl.java
License:Apache License
/** * //from w w w. j ava 2s . c o m * @param calendar * @param interval * @return * @throws CalendarException */ @SuppressWarnings("unchecked") protected final Set<VEvent> convertCalendarToEvents(net.fortuna.ical4j.model.Calendar calendar, Interval interval) throws CalendarException { Period period = new Period(new net.fortuna.ical4j.model.DateTime(interval.getStartMillis()), new net.fortuna.ical4j.model.DateTime(interval.getEndMillis())); Set<VEvent> events = new HashSet<VEvent>(); // if the calendar is null, return empty set if (calendar == null) { log.warn("calendar was empty, returning empty set"); return Collections.emptySet(); } // retrieve the list of events for this calendar within the // specified time period for (Iterator<Component> it = calendar.getComponents().iterator(); it.hasNext();) { /* * CAP-143: Log a warning and ignore events that cannot be * processed at this stage */ Component component = it.next(); try { if (component.getName().equals("VEVENT")) { VEvent event = (VEvent) component; if (log.isTraceEnabled()) { log.trace("processing event " + event.getSummary()); } // calculate the recurrence set for this event // for the specified time period PeriodList periods = event.calculateRecurrenceSet(period); // add each recurrence instance to the event list for (Iterator<Period> iter = periods.iterator(); iter.hasNext();) { Period eventper = iter.next(); if (log.isDebugEnabled()) { log.debug("Found time period staring at " + eventper.getStart().isUtc() + ", " + eventper.getStart().getTimeZone() + ", " + event.getStartDate().getTimeZone() + ", " + event.getStartDate().isUtc()); } PropertyList props = event.getProperties(); // create a new property list, setting the date // information to this event period PropertyList newprops = new PropertyList(); DtStart start; if (event.getStartDate().getDate() instanceof net.fortuna.ical4j.model.DateTime) { start = new DtStart(new net.fortuna.ical4j.model.DateTime(eventper.getStart())); } else { start = new DtStart(new net.fortuna.ical4j.model.Date(eventper.getStart())); } newprops.add(start); if (event.getEndDate() != null) { DtEnd end; if (event.getEndDate().getDate() instanceof net.fortuna.ical4j.model.DateTime) { end = new DtEnd(new net.fortuna.ical4j.model.DateTime(eventper.getEnd())); } else { end = new DtEnd(new net.fortuna.ical4j.model.Date(eventper.getEnd())); } newprops.add(end); } for (Iterator<Property> iter2 = props.iterator(); iter2.hasNext();) { Property prop = iter2.next(); // only add non-date-related properties if (!(prop instanceof DtStart) && !(prop instanceof DtEnd) && !(prop instanceof Duration) && !(prop instanceof RRule) && !(prop instanceof RDate) && !(prop instanceof ExRule) && !(prop instanceof ExDate)) { newprops.add(prop); } } // create the new event from our property list VEvent newevent = new VEvent(newprops); events.add(newevent); log.trace("added event " + newevent); } } } catch (Exception e) { final String msg = "Failed to process the following ical4j component: " + component; log.warn(msg, e); } } return events; }
From source file:org.jevis.commons.dataprocessing.function.ImpulsFunction.java
License:Open Source License
@Override public List<JEVisSample> getResult(Process mainTask) { List<JEVisSample> result = new ArrayList<>(); if (mainTask.getSubProcesses().size() > 1) { System.out.println("Impuscleaner cannot work with more than one imput, using first only."); } else if (mainTask.getSubProcesses().size() < 1) { System.out.println("Impuscleaner, no input nothing to do"); }// w w w.j a v a2s. c o m List<JEVisSample> samples = mainTask.getSubProcesses().get(0).getResult(); DateTime firstTS = DateTime.now(); DateTime lastTS = DateTime.now(); try { firstTS = samples.get(0).getTimestamp(); lastTS = samples.get(samples.size()).getTimestamp(); } catch (JEVisException ex) { Logger.getLogger(ImpulsFunction.class.getName()).log(Level.SEVERE, null, ex); } List<Interval> intervals = ProcessOptions.getIntervals(mainTask, firstTS, lastTS); int lastPos = 0; for (Interval interval : intervals) { List<JEVisSample> samplesInPeriod = new ArrayList<>(); for (int i = lastPos; i < samples.size(); i++) { try { if (interval.contains(samples.get(i).getTimestamp())) { // System.out.println("add sample: " + samples.get(i)); samplesInPeriod.add(samples.get(i)); } else if (samples.get(i).getTimestamp().isAfter(interval.getEnd())) { lastPos = i; break; } } catch (JEVisException ex) { System.out.println("JEVisExeption while going trou sample: " + ex.getMessage()); } } //TODO: thi sis an dummy for JEVisSample bestmatch = null; for (JEVisSample sample : samplesInPeriod) { long bestDiff = 99999999999999999l; try { long middelMili = ((interval.getEndMillis() - interval.getStartMillis()) / 2) + interval.getStartMillis(); long diff = Math.abs(sample.getTimestamp().getMillis() - middelMili); // System.out.println("Diff for: " + sample.getTimestamp() + " -> " + diff); if (bestmatch != null) { if (bestDiff < diff) { bestDiff = diff; bestmatch = sample; } } else { bestmatch = sample; bestDiff = diff; } } catch (JEVisException ex) { System.out.println("JEVisExeption while going trou sample2: " + ex.getMessage()); } } if (bestmatch != null) { System.out.println("Best match: " + bestmatch); result.add(bestmatch); } } return result; }
From source file:org.jevis.commons.dataprocessing.function.ImpulsFunction.java
License:Open Source License
public List<JEVisSample> getResult(ProcessOptions options, List<List<JEVisSample>> allSamples) { List<JEVisSample> result = new ArrayList<>(); for (List<JEVisSample> samples : allSamples) { try {// w ww . ja v a 2 s. c o m _durations = ProcessOptions.buildIntervals(Period.minutes(15), _offset, samples.get(0).getTimestamp(), samples.get(samples.size() - 1).getTimestamp()); } catch (JEVisException ex) { Logger.getLogger(ImpulsFunction.class.getName()).log(Level.SEVERE, null, ex); } //Samples list is sorted by default int lastPos = 0; for (Interval interval : _durations) { // System.out.println("Interval: " + interval); List<JEVisSample> samplesInPeriod = new ArrayList<>(); for (int i = lastPos; i < samples.size(); i++) { try { if (interval.contains(samples.get(i).getTimestamp())) { // System.out.println("add sample: " + samples.get(i)); samplesInPeriod.add(samples.get(i)); } else if (samples.get(i).getTimestamp().isAfter(interval.getEnd())) { lastPos = i; break; } } catch (JEVisException ex) { System.out.println("JEVisExeption while going trou sample: " + ex.getMessage()); } } //TODO: thi sis an dummy for JEVisSample bestmatch = null; for (JEVisSample sample : samplesInPeriod) { long bestDiff = 99999999999999999l; try { long middelMili = ((interval.getEndMillis() - interval.getStartMillis()) / 2) + interval.getStartMillis(); long diff = Math.abs(sample.getTimestamp().getMillis() - middelMili); // System.out.println("Diff for: " + sample.getTimestamp() + " -> " + diff); if (bestmatch != null) { if (bestDiff < diff) { bestDiff = diff; bestmatch = sample; } } else { bestmatch = sample; bestDiff = diff; } } catch (JEVisException ex) { System.out.println("JEVisExeption while going trou sample2: " + ex.getMessage()); } } if (bestmatch != null) { System.out.println("Best match: " + bestmatch); result.add(bestmatch); } } } return result; }
From source file:org.jevis.commons.dataprocessing.processor.ImpulsProcessor.java
License:Open Source License
@Override public List<JEVisSample> getResult(Task mainTask) { List<JEVisSample> result = new ArrayList<>(); if (mainTask.getSubTasks().size() > 1) { System.out.println("Impuscleaner cannot work with more than one imput, using first only."); } else if (mainTask.getSubTasks().size() < 1) { System.out.println("Impuscleaner, no input nothing to do"); }/*w w w. j a v a2s . c o m*/ List<JEVisSample> samples = mainTask.getSubTasks().get(0).getResult(); DateTime firstTS = DateTime.now(); DateTime lastTS = DateTime.now(); try { firstTS = samples.get(0).getTimestamp(); lastTS = samples.get(samples.size()).getTimestamp(); } catch (JEVisException ex) { Logger.getLogger(ImpulsProcessor.class.getName()).log(Level.SEVERE, null, ex); } List<Interval> intervals = Options.getIntervals(mainTask, firstTS, lastTS); int lastPos = 0; for (Interval interval : intervals) { List<JEVisSample> samplesInPeriod = new ArrayList<>(); for (int i = lastPos; i < samples.size(); i++) { try { if (interval.contains(samples.get(i).getTimestamp())) { // System.out.println("add sample: " + samples.get(i)); samplesInPeriod.add(samples.get(i)); } else if (samples.get(i).getTimestamp().isAfter(interval.getEnd())) { lastPos = i; break; } } catch (JEVisException ex) { System.out.println("JEVisExeption while going trou sample: " + ex.getMessage()); } } //TODO: thi sis an dummy for JEVisSample bestmatch = null; for (JEVisSample sample : samplesInPeriod) { long bestDiff = 99999999999999999l; try { long middelMili = ((interval.getEndMillis() - interval.getStartMillis()) / 2) + interval.getStartMillis(); long diff = Math.abs(sample.getTimestamp().getMillis() - middelMili); // System.out.println("Diff for: " + sample.getTimestamp() + " -> " + diff); if (bestmatch != null) { if (bestDiff < diff) { bestDiff = diff; bestmatch = sample; } } else { bestmatch = sample; bestDiff = diff; } } catch (JEVisException ex) { System.out.println("JEVisExeption while going trou sample2: " + ex.getMessage()); } } if (bestmatch != null) { System.out.println("Best match: " + bestmatch); result.add(bestmatch); } } return result; }
From source file:org.jevis.commons.dataprocessing.processor.ImpulsProcessor.java
License:Open Source License
public List<JEVisSample> getResult(Options options, List<List<JEVisSample>> allSamples) { List<JEVisSample> result = new ArrayList<>(); for (List<JEVisSample> samples : allSamples) { try {/*w w w . j a v a2 s . c o m*/ _durations = Options.buildIntervals(Period.minutes(15), _offset, samples.get(0).getTimestamp(), samples.get(samples.size() - 1).getTimestamp()); } catch (JEVisException ex) { Logger.getLogger(ImpulsProcessor.class.getName()).log(Level.SEVERE, null, ex); } //Samples list is sorted by default int lastPos = 0; for (Interval interval : _durations) { // System.out.println("Interval: " + interval); List<JEVisSample> samplesInPeriod = new ArrayList<>(); for (int i = lastPos; i < samples.size(); i++) { try { if (interval.contains(samples.get(i).getTimestamp())) { // System.out.println("add sample: " + samples.get(i)); samplesInPeriod.add(samples.get(i)); } else if (samples.get(i).getTimestamp().isAfter(interval.getEnd())) { lastPos = i; break; } } catch (JEVisException ex) { System.out.println("JEVisExeption while going trou sample: " + ex.getMessage()); } } //TODO: thi sis an dummy for JEVisSample bestmatch = null; for (JEVisSample sample : samplesInPeriod) { long bestDiff = 99999999999999999l; try { long middelMili = ((interval.getEndMillis() - interval.getStartMillis()) / 2) + interval.getStartMillis(); long diff = Math.abs(sample.getTimestamp().getMillis() - middelMili); // System.out.println("Diff for: " + sample.getTimestamp() + " -> " + diff); if (bestmatch != null) { if (bestDiff < diff) { bestDiff = diff; bestmatch = sample; } } else { bestmatch = sample; bestDiff = diff; } } catch (JEVisException ex) { System.out.println("JEVisExeption while going trou sample2: " + ex.getMessage()); } } if (bestmatch != null) { System.out.println("Best match: " + bestmatch); result.add(bestmatch); } } } return result; }
From source file:org.kalypso.ogc.sensor.filter.filters.interval.IntervalIndex.java
License:Open Source License
public void insert(final IntervalData sourceData) { final Interval interval = sourceData.getInterval(); m_sourceTree.insert(interval.getStartMillis(), interval.getEndMillis(), sourceData); m_itemCount++;/*from www . j a v a 2 s. c o m*/ }
From source file:org.kalypso.ogc.sensor.filter.filters.interval.IntervalIndex.java
License:Open Source License
public IntervalData[] query(final Interval targetInterval) { // BUGFIX: SortedPackedIntervalRTree runs into endless loop if queried when empty if (m_itemCount == 0) return new IntervalData[0]; final ItemCollector visitor = new ItemCollector(); m_sourceTree.query(targetInterval.getStartMillis(), targetInterval.getEndMillis(), visitor); return visitor.getItems(); }