Home / Class/ ReferenceMap Class — netty Architecture

ReferenceMap Class — netty Architecture

Architecture documentation for the ReferenceMap class in ReferenceMap.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  07a483d6_5d9d_65c5_5ccd_114cde40241d["ReferenceMap"]
  3694dfbb_743f_cef3_3898_f58ff8446fdb["ReferenceMap.java"]
  07a483d6_5d9d_65c5_5ccd_114cde40241d -->|defined in| 3694dfbb_743f_cef3_3898_f58ff8446fdb
  9053680e_1595_ab1c_d0f5_10b9f75ffd24["ReferenceMap()"]
  07a483d6_5d9d_65c5_5ccd_114cde40241d -->|method| 9053680e_1595_ab1c_d0f5_10b9f75ffd24
  d54c84b8_6a16_98a8_72e1_d8eaa0df5b15["fold()"]
  07a483d6_5d9d_65c5_5ccd_114cde40241d -->|method| d54c84b8_6a16_98a8_72e1_d8eaa0df5b15
  400cf5a8_b790_a517_2ca0_e8d84d7de27e["V()"]
  07a483d6_5d9d_65c5_5ccd_114cde40241d -->|method| 400cf5a8_b790_a517_2ca0_e8d84d7de27e
  f4e3bc51_3d2f_26e5_4480_172ce8101e8f["size()"]
  07a483d6_5d9d_65c5_5ccd_114cde40241d -->|method| f4e3bc51_3d2f_26e5_4480_172ce8101e8f
  1defc057_b81b_b924_b546_5c6f3c5dd0dd["isEmpty()"]
  07a483d6_5d9d_65c5_5ccd_114cde40241d -->|method| 1defc057_b81b_b924_b546_5c6f3c5dd0dd
  4577d8ff_abd6_8b7d_a59f_aab41271c4db["containsKey()"]
  07a483d6_5d9d_65c5_5ccd_114cde40241d -->|method| 4577d8ff_abd6_8b7d_a59f_aab41271c4db
  9744813d_ed5d_aedc_5a3a_8dac0a4f4888["containsValue()"]
  07a483d6_5d9d_65c5_5ccd_114cde40241d -->|method| 9744813d_ed5d_aedc_5a3a_8dac0a4f4888
  52503087_9d9c_0596_ba55_f9d299486241["putAll()"]
  07a483d6_5d9d_65c5_5ccd_114cde40241d -->|method| 52503087_9d9c_0596_ba55_f9d299486241
  6a582848_3979_09c9_9674_6304d7f7b325["clear()"]
  07a483d6_5d9d_65c5_5ccd_114cde40241d -->|method| 6a582848_3979_09c9_9674_6304d7f7b325
  db2ff83c_def8_5e3f_fafe_897c7fec9894["keySet()"]
  07a483d6_5d9d_65c5_5ccd_114cde40241d -->|method| db2ff83c_def8_5e3f_fafe_897c7fec9894
  d67fde66_ee16_a730_f109_5a4f3de44cfb["values()"]
  07a483d6_5d9d_65c5_5ccd_114cde40241d -->|method| d67fde66_ee16_a730_f109_5a4f3de44cfb
  0c47787d_34f7_4e09_3d44_67d5f063a84e["entrySet()"]
  07a483d6_5d9d_65c5_5ccd_114cde40241d -->|method| 0c47787d_34f7_4e09_3d44_67d5f063a84e

Relationship Graph

Source Code

codec-base/src/main/java/io/netty/handler/codec/serialization/ReferenceMap.java lines 23–102

abstract class ReferenceMap<K, V> implements Map<K, V> {

    private final Map<K, Reference<V>> delegate;

    protected ReferenceMap(Map<K, Reference<V>> delegate) {
        this.delegate = delegate;
    }

    abstract Reference<V> fold(V value);

    private V unfold(Reference<V> ref) {
        if (ref == null) {
            return null;
        }

        return ref.get();
    }

    @Override
    public int size() {
        return delegate.size();
    }

    @Override
    public boolean isEmpty() {
        return delegate.isEmpty();
    }

    @Override
    public boolean containsKey(Object key) {
        return delegate.containsKey(key);
    }

    @Override
    public boolean containsValue(Object value) {
        throw new UnsupportedOperationException();
    }

    @Override
    public V get(Object key) {
        return unfold(delegate.get(key));
    }

    @Override
    public V put(K key, V value) {
        return unfold(delegate.put(key, fold(value)));
    }

    @Override
    public V remove(Object key) {
        return unfold(delegate.remove(key));
    }

    @Override
    public void putAll(Map<? extends K, ? extends V> m) {
        for (Entry<? extends K, ? extends V> entry : m.entrySet()) {
            delegate.put(entry.getKey(), fold(entry.getValue()));
        }
    }

    @Override
    public void clear() {
        delegate.clear();
    }

    @Override
    public Set<K> keySet() {
        return delegate.keySet();
    }

    @Override
    public Collection<V> values() {
        throw new UnsupportedOperationException();
    }

    @Override
    public Set<Entry<K, V>> entrySet() {
        throw new UnsupportedOperationException();
    }
}

Frequently Asked Questions

What is the ReferenceMap class?
ReferenceMap is a class in the netty codebase, defined in codec-base/src/main/java/io/netty/handler/codec/serialization/ReferenceMap.java.
Where is ReferenceMap defined?
ReferenceMap is defined in codec-base/src/main/java/io/netty/handler/codec/serialization/ReferenceMap.java at line 23.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free