private T addCounterImpl(String name, String displayName, long value) { T counter = newCounter(name, displayName, value); addCounter(counter); return counter; }
@Override public synchronized T findCounter(String counterName, String displayName) { // Take lock to avoid two threads not finding a counter and trying to add // the same counter. String saveName = Limits.filterCounterName(counterName); T counter = findCounterImpl(saveName, false); if (counter == null) { return addCounterImpl(saveName, displayName, 0); } return counter; }
@Override public T findCounter(String counterName) { return findCounter(counterName, true); }
private synchronized T findCounterImpl(String counterName, boolean create) { T counter = counters.get(counterName); if (counter == null && create) { String localized = ResourceBundles.getCounterName(getName(), counterName, counterName); return addCounterImpl(counterName, localized, 0); } return counter; }
@Override public synchronized boolean equals(Object genericRight) { if (genericRight instanceof CounterGroupBase<?>) { @SuppressWarnings("unchecked") CounterGroupBase<T> right = (CounterGroupBase<T>) genericRight; return Iterators.elementsEqual(iterator(), right.iterator()); } return false; }
@Override public synchronized void readFields(DataInput in) throws IOException { displayName = StringInterner.weakIntern(Text.readString(in)); counters.clear(); int size = WritableUtils.readVInt(in); for (int i = 0; i < size; i++) { T counter = newCounter(); counter.readFields(in); counters.put(counter.getName(), counter); limits.incrCounters(); } }
@Override public T findCounter(String counterName, boolean create) { return findCounterImpl(Limits.filterCounterName(counterName), create); }
private synchronized T findCounterImpl(String counterName, boolean create) { T counter = counters.get(counterName); if (counter == null && create) { String localized = ResourceBundles.getCounterName(getName(), counterName, counterName); return addCounterImpl(counterName, localized, 0); } return counter; }
@Override public synchronized boolean equals(Object genericRight) { if (genericRight instanceof CounterGroupBase<?>) { @SuppressWarnings("unchecked") CounterGroupBase<T> right = (CounterGroupBase<T>) genericRight; return Iterators.elementsEqual(iterator(), right.iterator()); } return false; }
@Override public synchronized void readFields(DataInput in) throws IOException { displayName = StringInterner.weakIntern(Text.readString(in)); counters.clear(); int size = WritableUtils.readVInt(in); for (int i = 0; i < size; i++) { T counter = newCounter(); counter.readFields(in); counters.put(counter.getName(), counter); limits.incrCounters(); } }
@Override public T findCounter(String counterName, boolean create) { return findCounterImpl(Limits.filterCounterName(counterName), create); }
@Override public synchronized T findCounter(String counterName, String displayName) { // Take lock to avoid two threads not finding a counter and trying to add // the same counter. String saveName = Limits.filterCounterName(counterName); T counter = findCounterImpl(saveName, false); if (counter == null) { return addCounterImpl(saveName, displayName, 0); } return counter; }
private T addCounterImpl(String name, String displayName, long value) { T counter = newCounter(name, displayName, value); addCounter(counter); return counter; }
private synchronized T findCounterImpl(String counterName, boolean create) { T counter = counters.get(counterName); if (counter == null && create) { String localized = ResourceBundles.getCounterName(getName(), counterName, counterName); return addCounterImpl(counterName, localized, 0); } return counter; }
@Override public T findCounter(String counterName) { return findCounter(counterName, true); }
@Override public synchronized boolean equals(Object genericRight) { if (genericRight instanceof CounterGroupBase<?>) { @SuppressWarnings("unchecked") CounterGroupBase<T> right = (CounterGroupBase<T>) genericRight; return Iterators.elementsEqual(iterator(), right.iterator()); } return false; }
@Override public synchronized void readFields(DataInput in) throws IOException { displayName = StringInterner.weakIntern(Text.readString(in)); counters.clear(); int size = WritableUtils.readVInt(in); for (int i = 0; i < size; i++) { T counter = newCounter(); counter.readFields(in); counters.put(counter.getName(), counter); limits.incrCounters(); } }
@Override public T findCounter(String counterName, boolean create) { return findCounterImpl(Limits.filterCounterName(counterName), create); }
@Override public synchronized T findCounter(String counterName, String displayName) { // Take lock to avoid two threads not finding a counter and trying to add // the same counter. String saveName = Limits.filterCounterName(counterName); T counter = findCounterImpl(saveName, false); if (counter == null) { return addCounterImpl(saveName, displayName, 0); } return counter; }
private T addCounterImpl(String name, String displayName, long value) { T counter = newCounter(name, displayName, value); addCounter(counter); return counter; }