com.netflix.zeno.util.collections.impl
Class AbstractArrayMap<K,V>

java.lang.Object
  extended by com.netflix.zeno.util.collections.impl.AbstractArrayMap<K,V>
Type Parameters:
K -
V -
All Implemented Interfaces:
MapBuilder<K,V>, java.util.Map<K,V>
Direct Known Subclasses:
AbstractArraySortedMap, BinarySearchArrayIndexedHashMap, OpenAddressingHashMap

public abstract class AbstractArrayMap<K,V>
extends java.lang.Object
implements java.util.Map<K,V>, MapBuilder<K,V>

Abstract class which helps people to write Array based immutable implementations of the Map interface


Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
java.util.Map.Entry<K,V>
 
Field Summary
protected static java.lang.Object undefined
           
 
Constructor Summary
AbstractArrayMap()
           
AbstractArrayMap(AbstractArrayMap<K,V> map, int start, int end)
           
 
Method Summary
abstract  java.util.Map<K,V> builderFinish()
           
abstract  void builderInit(int size)
           
abstract  void builderPut(int index, K key, V value)
           
 void clear()
           
 boolean containsKey(java.lang.Object key)
           
 boolean containsValue(java.lang.Object value)
           
 java.util.Set<java.util.Map.Entry<K,V>> entrySet()
           
 boolean equals(java.lang.Object o)
           
 V get(java.lang.Object key)
           
abstract  java.lang.Object getUndefined(java.lang.Object key)
           
 int hashCode()
           
protected  int hashCode(java.lang.Object o)
           
 boolean isEmpty()
           
protected abstract  K key(int index)
           
 java.util.Set<K> keySet()
           
 V put(K key, V value)
           
 void putAll(java.util.Map<? extends K,? extends V> m)
           
protected  int rehash(int hash)
           
 V remove(java.lang.Object key)
           
 void setMap(java.util.Map.Entry<K,V>[] entries)
           
 void setMap(java.util.Map<K,V> map)
           
abstract  int size()
           
protected abstract  V value(int index)
           
 java.util.Collection<V> values()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

undefined

protected static final java.lang.Object undefined
Constructor Detail

AbstractArrayMap

public AbstractArrayMap()

AbstractArrayMap

public AbstractArrayMap(AbstractArrayMap<K,V> map,
                        int start,
                        int end)
Method Detail

getUndefined

public abstract java.lang.Object getUndefined(java.lang.Object key)

size

public abstract int size()
Specified by:
size in interface java.util.Map<K,V>

key

protected abstract K key(int index)

value

protected abstract V value(int index)

builderInit

public abstract void builderInit(int size)
Specified by:
builderInit in interface MapBuilder<K,V>

builderPut

public abstract void builderPut(int index,
                                K key,
                                V value)
Specified by:
builderPut in interface MapBuilder<K,V>

builderFinish

public abstract java.util.Map<K,V> builderFinish()
Specified by:
builderFinish in interface MapBuilder<K,V>

setMap

public void setMap(java.util.Map<K,V> map)

setMap

public void setMap(java.util.Map.Entry<K,V>[] entries)

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface java.util.Map<K,V>

get

public V get(java.lang.Object key)
Specified by:
get in interface java.util.Map<K,V>

containsKey

public boolean containsKey(java.lang.Object key)
Specified by:
containsKey in interface java.util.Map<K,V>

containsValue

public boolean containsValue(java.lang.Object value)
Specified by:
containsValue in interface java.util.Map<K,V>

equals

public boolean equals(java.lang.Object o)
Specified by:
equals in interface java.util.Map<K,V>
Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Specified by:
hashCode in interface java.util.Map<K,V>
Overrides:
hashCode in class java.lang.Object

put

public V put(K key,
             V value)
Specified by:
put in interface java.util.Map<K,V>

remove

public V remove(java.lang.Object key)
Specified by:
remove in interface java.util.Map<K,V>

putAll

public void putAll(java.util.Map<? extends K,? extends V> m)
Specified by:
putAll in interface java.util.Map<K,V>

clear

public void clear()
Specified by:
clear in interface java.util.Map<K,V>

keySet

public java.util.Set<K> keySet()
Specified by:
keySet in interface java.util.Map<K,V>

values

public java.util.Collection<V> values()
Specified by:
values in interface java.util.Map<K,V>

entrySet

public java.util.Set<java.util.Map.Entry<K,V>> entrySet()
Specified by:
entrySet in interface java.util.Map<K,V>

hashCode

protected int hashCode(java.lang.Object o)

rehash

protected int rehash(int hash)