@Override public TFloatCollection valueCollection() { synchronized (mutex) { if (values == null) values = new TSynchronizedFloatCollection(m.valueCollection(), mutex); return values; } }
@Override public TLongSet keySet() { synchronized (mutex) { if (keySet == null) keySet = new TSynchronizedLongSet(m.keySet(), mutex); return keySet; } }
@Override public void putAll(Map<? extends Long, ? extends Float> map) { synchronized (mutex) { m.putAll(map); } }
@Override public boolean containsValue(float value) { synchronized (mutex) { return m.containsValue(value); } }
@Override public boolean isEmpty() { synchronized (mutex) { return m.isEmpty(); } }
@Override public String toString() { synchronized (mutex) { return m.toString(); } }
@Override public boolean equals(Object o) { synchronized (mutex) { return m.equals(o); } }
@Override public boolean adjustValue(long key, float amount) { synchronized (mutex) { return m.adjustValue(key, amount); } }
@Override public boolean retainEntries(TLongFloatProcedure procedure) { synchronized (mutex) { return m.retainEntries(procedure); } }
@Override public long[] keys(long[] array) { synchronized (mutex) { return m.keys(array); } }
@Override public long[] keys() { synchronized (mutex) { return m.keys(); } }
@Override public void clear() { synchronized (mutex) { m.clear(); } }
@Override public void putAll(TLongFloatMap map) { synchronized (mutex) { m.putAll(map); } }
@Override public boolean forEachEntry(TLongFloatProcedure procedure) { synchronized (mutex) { return m.forEachEntry(procedure); } }
@Override public float[] values() { synchronized (mutex) { return m.values(); } }
@Override public void transformValues(TFloatFunction function) { synchronized (mutex) { m.transformValues(function); } }
@Override public float[] values(float[] array) { synchronized (mutex) { return m.values(array); } }
@Override public boolean increment(long key) { synchronized (mutex) { return m.increment(key); } }
@Override public TLongFloatIterator iterator() { return m.iterator(); // Must be manually synched by user! }
@Override public float adjustOrPutValue(long key, float adjust_amount, float put_amount) { synchronized (mutex) { return m.adjustOrPutValue(key, adjust_amount, put_amount); } }
// these are unchanging over the life of the map, no need to lock @Override public long getNoEntryKey() { return m.getNoEntryKey(); }
@Override public int hashCode() { synchronized (mutex) { return m.hashCode(); } }
@Override public float getNoEntryValue() { return m.getNoEntryValue(); }
@Override public int size() { synchronized (mutex) { return m.size(); } }
@Override public float putIfAbsent(long key, float value) { synchronized (mutex) { return m.putIfAbsent(key, value); } }
@Override public boolean containsKey(long key) { synchronized (mutex) { return m.containsKey(key); } }
@Override public boolean forEachValue(TFloatProcedure procedure) { synchronized (mutex) { return m.forEachValue(procedure); } }
@Override public float get(long key) { synchronized (mutex) { return m.get(key); } }
@Override public float remove(long key) { synchronized (mutex) { return m.remove(key); } }