package com.paymill.utils;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
public final class ParameterMap<K, V> implements Map<K, List<V>> {
private final HashMap<K, List<V>> map;
public ParameterMap() {
this.map = new HashMap<K, List<V>>();
}
public void add( final K key, final V value ) {
List<V> values = this.map.get( key );
if( values == null ) {
values = new ArrayList<V>();
}
values.add( value );
this.map.put( key, values );
}
public V getFirst( final K key ) {
return this.get( key ) != null ? this.get( key ).get( 0 ) : null;
}
@Override
public int size() {
return this.map.size();
}
@Override
public boolean isEmpty() {
return this.map.isEmpty();
}
@Override
public boolean containsKey( final Object o ) {
return this.map.containsKey( o );
}
@Override
public boolean containsValue( final Object o ) {
return this.map.containsValue( o );
}
@Override
public List<V> get( final Object o ) {
return this.map.get( o );
}
@Override
public List<V> put( final K k, final List<V> vs ) {
return this.map.put( k, vs );
}
@Override
public List<V> remove( final Object o ) {
return this.map.remove( o );
}
@Override
public void putAll( final Map<? extends K, ? extends List<V>> map ) {
this.map.putAll( map );
}
@Override
public void clear() {
this.map.clear();
}
@Override
public Set<K> keySet() {
return this.map.keySet();
}
@Override
public Collection<List<V>> values() {
return this.map.values();
}
@Override
public Set<Entry<K, List<V>>> entrySet() {
return this.map.entrySet();
}
}