MCPcopy Create free account
hub / github.com/OpenTSDB/opentsdb / parse

Method parse

src/tsd/client/DateTimeBox.java:52–89  ·  view source on GitHub ↗

Adds support for some human readable dates ("1d ago", "10:30").

(final DateBox box,
                        final String text,
                        final boolean report_error)

Source from the content-addressed store, hash-verified

50 new DefaultFormat(DateTimeFormat.getFormat("yyyy/MM/dd-HH:mm:ss")) {
51 /** Adds support for some human readable dates ("1d ago", "10:30"). */
52 @Override
53 public Date parse(final DateBox box,
54 final String text,
55 final boolean report_error) {
56 if (text.endsWith(" ago") || text.endsWith("-ago")) { // e.g. "1d ago".
57 long interval;
58 final int lastchar = text.length() - 5;
59 try {
60 interval = Integer.parseInt(text.substring(0, lastchar));
61 } catch (NumberFormatException e) {
62 setError(box);
63 return null;
64 }
65 if (interval <= 0) {
66 setError(box);
67 return null;
68 }
69 switch (text.charAt(lastchar)) {
70 case 's': break; // seconds
71 case 'm': interval *= 60; break; // minutes
72 case 'h': interval *= 3600; break; // hours
73 case 'd': interval *= 3600 * 24; break; // days
74 case 'w': interval *= 3600 * 24 * 7; break; // weeks
75 case 'y': interval *= 3600 * 24 * 365; break; // years
76 }
77 final Date d = new Date();
78 d.setTime(d.getTime() - interval * 1000L);
79 return d;
80 } else if (text.length() == 5) { // "HH:MM"
81 try {
82 return HHMM_FORMAT.parse(text);
83 } catch (IllegalArgumentException ignored) {
84 setError(box);
85 return null;
86 }
87 }
88 return super.parse(box, text, report_error);
89 }
90
91 private void setError(final DateBox box) {
92 box.addStyleName("dateBoxFormatError");

Callers 2

onResponseReceivedMethod · 0.45
onResponseReceivedMethod · 0.45

Calls 3

setErrorMethod · 0.95
setTimeMethod · 0.45
getTimeMethod · 0.45

Tested by

no test coverage detected