MCPcopy Create free account
hub / github.com/cmu-db/benchbase / fromJSON

Method fromJSON

src/main/java/com/oltpbenchmark/util/Histogram.java:606–647  ·  view source on GitHub ↗
(JSONObject object)

Source from the content-addressed store, hash-verified

604 }
605
606 @Override
607 @SuppressWarnings("unchecked")
608 public void fromJSON(JSONObject object) throws JSONException {
609 if (object.has(Members.KEEP_ZERO_ENTRIES.name())) {
610 this.setKeepZeroEntries(object.getBoolean(Members.KEEP_ZERO_ENTRIES.name()));
611 }
612 Class<?> value_type = null;
613 if (object.has(Members.VALUE_TYPE.name())) {
614 String className = object.getString(Members.VALUE_TYPE.name());
615 value_type = ClassUtil.getClass(className);
616 }
617
618 // This code sucks ass...
619 for (Members element : Histogram.Members.values()) {
620 if (element == Members.KEEP_ZERO_ENTRIES || element == Members.VALUE_TYPE) {
621 continue;
622 }
623 try {
624 String field_name = element.toString().toLowerCase();
625 Field field = Histogram.class.getDeclaredField(field_name);
626 if (element == Members.HISTOGRAM) {
627 JSONObject jsonObject = object.getJSONObject(Members.HISTOGRAM.name());
628 Iterator<String> keys = jsonObject.keys();
629 while (keys.hasNext()) {
630 String key_name = keys.next();
631
632 X key_value = (X) JSONUtil.getPrimitiveValue(key_name, value_type);
633 int count = jsonObject.getInt(key_name);
634 this.histogram.put(key_value, count);
635 }
636 } else {
637 field.set(this, object.getInt(element.name()));
638 }
639 } catch (Exception e) {
640 LOG.error(e.getMessage(), e);
641 System.exit(1);
642 }
643 }
644
645 this.dirty = true;
646 this.calculateInternalValues();
647 }
648}

Callers 1

testFromJSONMethod · 0.95

Calls 11

setKeepZeroEntriesMethod · 0.95
getClassMethod · 0.95
getPrimitiveValueMethod · 0.95
getStringMethod · 0.80
valuesMethod · 0.80
toStringMethod · 0.45
hasNextMethod · 0.45
nextMethod · 0.45
putMethod · 0.45
setMethod · 0.45

Tested by 1

testFromJSONMethod · 0.76