| 569 | } |
| 570 | |
| 571 | @Override |
| 572 | public void toJSON(JSONStringer stringer) throws JSONException { |
| 573 | Class<?> value_type = null; |
| 574 | for (Members element : Histogram.Members.values()) { |
| 575 | if (element == Histogram.Members.VALUE_TYPE) { |
| 576 | continue; |
| 577 | } |
| 578 | try { |
| 579 | Field field = Histogram.class.getDeclaredField(element.toString().toLowerCase()); |
| 580 | if (element == Members.HISTOGRAM) { |
| 581 | stringer.key(Members.HISTOGRAM.name()).object(); |
| 582 | for (Object value : this.histogram.keySet()) { |
| 583 | if (value != null && value_type == null) { |
| 584 | value_type = value.getClass(); |
| 585 | } |
| 586 | stringer.key(value.toString()).value(this.histogram.get(value)); |
| 587 | } |
| 588 | stringer.endObject(); |
| 589 | } else if (element == Members.KEEP_ZERO_ENTRIES) { |
| 590 | if (this.keep_zero_entries) { |
| 591 | stringer.key(element.name()).value(this.keep_zero_entries); |
| 592 | } |
| 593 | } else { |
| 594 | stringer.key(element.name()).value(field.get(this)); |
| 595 | } |
| 596 | } catch (Exception e) { |
| 597 | LOG.error(e.getMessage(), e); |
| 598 | System.exit(1); |
| 599 | } |
| 600 | } |
| 601 | if (value_type != null) { |
| 602 | stringer.key(Histogram.Members.VALUE_TYPE.name()).value(value_type.getCanonicalName()); |
| 603 | } |
| 604 | } |
| 605 | |
| 606 | @Override |
| 607 | @SuppressWarnings("unchecked") |