private void initCounters() { if (this.counters != null) { return; } CounterGroupProtoOrBuilder p = viaProto ? proto : builder; List<StringCounterMapProto> list = p.getCountersList(); this.counters = new HashMap<String, Counter>(); for (StringCounterMapProto c : list) { this.counters.put(c.getKey(), convertFromProtoFormat(c.getValue())); } }
private void addContersToProto() { maybeInitBuilder(); builder.clearCounters(); if (counters == null) return; Iterable<StringCounterMapProto> iterable = new Iterable<StringCounterMapProto>() { @Override public Iterator<StringCounterMapProto> iterator() { return new Iterator<StringCounterMapProto>() { Iterator<String> keyIter = counters.keySet().iterator(); @Override public void remove() { throw new UnsupportedOperationException(); } @Override public StringCounterMapProto next() { String key = keyIter.next(); return StringCounterMapProto.newBuilder().setKey(key).setValue(convertToProtoFormat(counters.get(key))).build(); } @Override public boolean hasNext() { return keyIter.hasNext(); } }; } }; builder.addAllCounters(iterable); }