List of usage examples for org.joda.time MutableDateTime addMillis
public void addMillis(final int millis)
From source file:com.tmathmeyer.sentinel.ui.views.day.DayCalendar.java
License:Open Source License
public DayCalendar(DateTime on) { this.time = on; MutableDateTime mdt = time.toMutableDateTime(); mdt.setMillis(0);//from ww w . ja va 2s. com mdt.addDays(1); mdt.addMillis(-1); scroll.setBackground(Colors.TABLE_BACKGROUND); scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scroll.getVerticalScrollBar().setUnitIncrement(20); scroll.setAutoscrolls(true); scroll.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); holder.setBackground(Colors.TABLE_BACKGROUND); this.setLayout(new BorderLayout()); this.holder.setLayout(new BorderLayout()); generateDay(); }
From source file:com.tmathmeyer.sentinel.ui.views.week.WeekCalendar.java
License:Open Source License
/** * Selects an event's corresponding Displayable * //from w ww . j av a 2s . c o m * @param on Event being selected * @param setTo Displayable of Event being selected */ private void selectEvents(Event on, Displayable setTo) { // TODO: refactor this pattern DayPanel mLouvreTour; MutableDateTime startDay = new MutableDateTime(on.getStart()); MutableDateTime endDay = new MutableDateTime(on.getEnd()); endDay.setMillisOfDay(0); endDay.addDays(1); endDay.addMillis(-1); startDay.setMillisOfDay(0); Interval eventLength = new Interval(startDay, endDay); if (setTo == null || eventLength.toDuration().getStandardHours() > 24) { for (WeekMultidayEventItem multidayItem : multidayItemList) { if (setTo != null && multidayItem.getEvent().getUuid().equals(((Event) on).getUuid())) multidayItem.setSelected(true); else multidayItem.setSelected(false); } return; } // TODO: can be simplified now that multiday events are handled // elsewhere int index = 0; for (int i = 0; i < 7; i++) { if (startDay.getDayOfYear() == daysOfWeekArray[i].getDisplayDate().getDayOfYear()) { index = i; break; } } while (index < 7 && !endDay.isBefore(daysOfWeekArray[index].getDisplayDate())) { mLouvreTour = daysOfWeekArray[index]; try { mLouvreTour.select(setTo); } catch (NullPointerException ex) { // silently ignore as this is apparently not in the view } index++; } }
From source file:ddf.metrics.reporting.internal.rrd4j.RrdMetricsRetriever.java
License:Open Source License
private void createSummary(Workbook wb, List<String> metricNames, String metricsDir, long startTime, long endTime, SUMMARY_INTERVALS summaryInterval) throws IOException, MetricsGraphException { // convert seconds to milliseconds startTime = TimeUnit.SECONDS.toMillis(startTime); endTime = TimeUnit.SECONDS.toMillis(endTime); DateTime reportStart = new DateTime(startTime, DateTimeZone.UTC); DateTime reportEnd = new DateTime(endTime, DateTimeZone.UTC); Sheet sheet = wb.createSheet();/* w ww. j a va 2 s .c om*/ wb.setSheetName(0, reportStart.toString(SUMMARY_TIMESTAMP) + " to " + reportEnd.toString(SUMMARY_TIMESTAMP)); Row headingRow = sheet.createRow(0); int columnMax = 1; for (String metricName : metricNames) { MutableDateTime chunkStart = new MutableDateTime(reportStart); MutableDateTime chunkEnd = new MutableDateTime(chunkStart); Row row = sheet.createRow(metricNames.indexOf(metricName) + 1); int columnCounter = 1; Boolean isSum = null; while (reportEnd.compareTo(chunkEnd) > 0 && columnCounter < EXCEL_MAX_COLUMNS) { increment(chunkEnd, summaryInterval); if (chunkEnd.isAfter(reportEnd)) { chunkEnd.setMillis(reportEnd); } // offset range by one millisecond so rrd will calculate granularity correctly chunkEnd.addMillis(-1); MetricData metricData = getMetricData(getRrdFilename(metricsDir, metricName), TimeUnit.MILLISECONDS.toSeconds(chunkStart.getMillis()), TimeUnit.MILLISECONDS.toSeconds(chunkEnd.getMillis())); isSum = metricData.hasTotalCount(); chunkEnd.addMillis(1); if (headingRow.getCell(columnCounter) == null) { Cell headingRowCell = headingRow.createCell(columnCounter); headingRowCell.getCellStyle().setWrapText(true); headingRowCell.setCellValue(getTimestamp(chunkStart, chunkEnd, columnCounter, summaryInterval)); } Cell sumOrAvg = row.createCell(columnCounter); if (isSum) { sumOrAvg.setCellValue((double) metricData.getTotalCount()); } else { sumOrAvg.setCellValue(cumulativeRunningAverage(metricData.getValues())); } chunkStart.setMillis(chunkEnd); columnCounter++; } columnMax = columnCounter; if (isSum != null) { row.createCell(0).setCellValue(convertCamelCase(metricName) + " (" + (isSum ? "sum" : "avg") + ")"); } } for (int i = 0; i < columnMax; i++) { sheet.autoSizeColumn(i); } }
From source file:edu.wpi.cs.wpisuitetng.modules.cal.ui.views.day.DayCalendar.java
License:Open Source License
public DayCalendar(DateTime on) { this.time = on; MutableDateTime mdt = time.toMutableDateTime(); mdt.setMillis(0);/*w w w . j a va2 s.c o m*/ this.dayStart = mdt.toDateTime(); mdt.addDays(1); mdt.addMillis(-1); this.dayEnd = mdt.toDateTime(); scroll.setBackground(Colors.TABLE_BACKGROUND); scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scroll.getVerticalScrollBar().setUnitIncrement(20); scroll.setAutoscrolls(true); scroll.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); holder.setBackground(Colors.TABLE_BACKGROUND); this.setLayout(new BorderLayout()); this.holder.setLayout(new BorderLayout()); generateDay(); }
From source file:edu.wpi.cs.wpisuitetng.modules.cal.ui.views.week.WeekCalendar.java
License:Open Source License
/** * Selects an event's corresponding Displayable * //w ww. j av a 2s .c o m * @param on * Event being selected * @param setTo * Displayable of Event being selected */ private void selectEvents(Event on, Displayable setTo) { // TODO: refactor this pattern DayPanel mLouvreTour; MutableDateTime startDay = new MutableDateTime(on.getStart()); MutableDateTime endDay = new MutableDateTime(on.getEnd()); endDay.setMillisOfDay(0); endDay.addDays(1); endDay.addMillis(-1); startDay.setMillisOfDay(0); Interval eventLength = new Interval(startDay, endDay); if (setTo == null || eventLength.toDuration().getStandardHours() > 24) { for (WeekMultidayEventItem multidayItem : multidayItemList) { if (setTo != null && multidayItem.getEvent().getUuid().equals(((Event) on).getUuid())) multidayItem.setSelected(true); else multidayItem.setSelected(false); } return; } //TODO: can be simplified now that multiday events are handled elsewhere int index = 0; for (int i = 0; i < 7; i++) { if (startDay.getDayOfYear() == daysOfWeekArray[i].getDisplayDate().getDayOfYear()) { index = i; break; } } while (index < 7 && !endDay.isBefore(daysOfWeekArray[index].getDisplayDate())) { mLouvreTour = daysOfWeekArray[index]; try { mLouvreTour.select(setTo); } catch (NullPointerException ex) { // silently ignore as this is apparently not in the view } index++; } }
From source file:jais.readers.AISPacketBuffer.java
License:Apache License
/** * * @param packet/*from w w w.j a v a 2 s .co m*/ * @param removeIfComplete * @return */ public synchronized AISPacket[] add(AISPacket packet, boolean removeIfComplete) { AISPacket[] packets = null; if (packet == null) { LOG.debug("Ignoring null packet."); } else { try { _buffer.keySet().stream().forEach((k) -> { try { MutableDateTime timestamp = _buffer.get(k).getTimestamp(); timestamp.addMillis(_maxPacketAge); if (timestamp.isBeforeNow()) { LOG.debug("Removing expired packet set."); _buffer.remove(k); } } catch (NullPointerException npe) { LOG.debug("NPE encountered while cleaning old records from buffer."); _buffer.remove(k); } }); } catch (NullPointerException npe) { LOG.info("NPE encountered while cleaning old records from buffer. Concurrency issue?", npe); } catch (Throwable t) { LOG.error("Encountered an unanticipated fault: " + t.getMessage(), t); } String pk = getKey(packet); if (packet.getFragmentCount() > 1) { LOG.trace("This is a multi-packet message."); if (_buffer.containsKey(pk) && _buffer.get(pk) != null) { LOG.trace("Buffer already contains the first packet for this message."); AISPacketSet aps = _buffer.get(pk); aps.add(packet); } else { LOG.trace("This is the first packet in this message sequence."); AISPacketSet aps = new AISPacketSet(packet); _buffer.put(pk, aps); } if (isComplete(packet)) { if (removeIfComplete) { LOG.debug("Removing completed packet set."); packets = remove(packet); } else { packets = getPackets(packet); } } } else { packets = new AISPacket[] { packet }; if (!removeIfComplete) { _buffer.put(pk, new AISPacketSet(packet)); } } } return packets; }
From source file:org.codelibs.elasticsearch.common.joda.DateMathParser.java
License:Apache License
private long parseMath(String mathString, long time, boolean roundUp, DateTimeZone timeZone) throws ElasticsearchParseException { if (timeZone == null) { timeZone = DateTimeZone.UTC;/*from ww w. java 2 s. c o m*/ } MutableDateTime dateTime = new MutableDateTime(time, timeZone); for (int i = 0; i < mathString.length();) { char c = mathString.charAt(i++); final boolean round; final int sign; if (c == '/') { round = true; sign = 1; } else { round = false; if (c == '+') { sign = 1; } else if (c == '-') { sign = -1; } else { throw new ElasticsearchParseException("operator not supported for date math [{}]", mathString); } } if (i >= mathString.length()) { throw new ElasticsearchParseException("truncated date math [{}]", mathString); } final int num; if (!Character.isDigit(mathString.charAt(i))) { num = 1; } else { int numFrom = i; while (i < mathString.length() && Character.isDigit(mathString.charAt(i))) { i++; } if (i >= mathString.length()) { throw new ElasticsearchParseException("truncated date math [{}]", mathString); } num = Integer.parseInt(mathString.substring(numFrom, i)); } if (round) { if (num != 1) { throw new ElasticsearchParseException("rounding `/` can only be used on single unit types [{}]", mathString); } } char unit = mathString.charAt(i++); MutableDateTime.Property propertyToRound = null; switch (unit) { case 'y': if (round) { propertyToRound = dateTime.yearOfCentury(); } else { dateTime.addYears(sign * num); } break; case 'M': if (round) { propertyToRound = dateTime.monthOfYear(); } else { dateTime.addMonths(sign * num); } break; case 'w': if (round) { propertyToRound = dateTime.weekOfWeekyear(); } else { dateTime.addWeeks(sign * num); } break; case 'd': if (round) { propertyToRound = dateTime.dayOfMonth(); } else { dateTime.addDays(sign * num); } break; case 'h': case 'H': if (round) { propertyToRound = dateTime.hourOfDay(); } else { dateTime.addHours(sign * num); } break; case 'm': if (round) { propertyToRound = dateTime.minuteOfHour(); } else { dateTime.addMinutes(sign * num); } break; case 's': if (round) { propertyToRound = dateTime.secondOfMinute(); } else { dateTime.addSeconds(sign * num); } break; default: throw new ElasticsearchParseException("unit [{}] not supported for date math [{}]", unit, mathString); } if (propertyToRound != null) { if (roundUp) { // we want to go up to the next whole value, even if we are already on a rounded value propertyToRound.add(1); propertyToRound.roundFloor(); dateTime.addMillis(-1); // subtract 1 millisecond to get the largest inclusive value } else { propertyToRound.roundFloor(); } } } return dateTime.getMillis(); }