protected <K, V> CollectionProxy<K,V> newProxy(final Class<K> keyType, final Class<V> valueType, final CollectionOptions opts) {
if (opts.insertionOrdered()) {
if (opts.concurrent()) {
return new MapOf<K,V>(new ConcurrentSkipListMap<K,V>(), keyType, valueType);
} else {
return new MapOf<K,V>(new LinkedHashMap<K,V>(), keyType, valueType);
}
}
if (opts.concurrent()) {
return new MapOf<K,V>(new ConcurrentHashMap<K,V>(), keyType, valueType);
} else {
return new MapOf<K,V>(new HashMap<K,V>(), keyType, valueType);
}
}