package org.jboss.resteasy.util;
import javax.ws.rs.core.MultivaluedMap;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
MultivaluedMap
implementation that wraps another instance and only returns values that are prefixed with the given PrefixedMultivaluedMap<V>.prefixWithDot
. Type parameters: - <V> – The type of the values in the lists in the map.
/**
* {@link javax.ws.rs.core.MultivaluedMap} implementation that wraps another instance and only returns values that are prefixed with the given {@link #prefixWithDot}.
*
* @param <V> The type of the values in the lists in the map.
*/
public class PrefixedMultivaluedMap<V> extends DelegatingMultivaluedMap<String, V>
{
private final String prefixWithDot;
Constructor setting the prefix and the delegate.
Params: - prefix – prefix
- delegate – delegate map
/**
* Constructor setting the prefix and the delegate.
* @param prefix prefix
* @param delegate delegate map
*/
public PrefixedMultivaluedMap(final String prefix, final MultivaluedMap<String, V> delegate)
{
super(delegate);
this.prefixWithDot = prefix + ".";
}
Returns the value assigned to "prefix.key" implicitly converts the key to String
. Params: - key – key
Returns: values
/**
* Returns the value assigned to "<i>prefix</i>.<i>key</i>" implicitly converts the key to {@link String}.
* @param key key
* @return values
*/
@Override
public List<V> get(Object key)
{
return super.get(prefixWithDot + key);
}
@Override
public Set<String> keySet()
{
HashSet<String> result = new HashSet<String>();
for (String key : super.keySet())
{
if (key.startsWith(prefixWithDot))
{
result.add(key.substring(prefixWithDot.length()));
}
}
return result;
}
}