/* * Copyright 2004-2014 H2 Group. Multiple-Licensed under the MPL 2.0, * and the EPL 1.0 (http://h2database.com/html/license.html). * Initial Developer: H2 Group */ package org.h2.mvstore; import org.h2.mvstore.type.DataType; import org.h2.mvstore.type.ObjectDataType; /** * A class used for backward compatibility. * * @param <K> the key type * @param <V> the value type */ public class MVMapConcurrent<K, V> extends MVMap<K, V> { public MVMapConcurrent(DataType keyType, DataType valueType) { super(keyType, valueType); } /** * A builder for this class. * * @param <K> the key type * @param <V> the value type */ public static class Builder<K, V> implements MapBuilder<MVMapConcurrent<K, V>, K, V> { protected DataType keyType; protected DataType valueType; /** * Create a new builder with the default key and value data types. */ public Builder() { // ignore } /** * Set the key data type. * * @param keyType the key type * @return this */ public Builder<K, V> keyType(DataType keyType) { this.keyType = keyType; return this; } /** * Set the key data type. * * @param valueType the key type * @return this */ public Builder<K, V> valueType(DataType valueType) { this.valueType = valueType; return this; } @Override public MVMapConcurrent<K, V> create() { if (keyType == null) { keyType = new ObjectDataType(); } if (valueType == null) { valueType = new ObjectDataType(); } return new MVMapConcurrent<K, V>(keyType, valueType); } } }